﻿namespace CRM.Models
{
    //#region Customers

    ///// <summary>
    ///// Расширение класса Customers
    ///// </summary>
    //public partial class Customers
    //{
    //    public int CurrentDistrict;
    //    public int CurrentRegion;

    //    /// <summary>
    //    /// Активные реквизиты
    //    /// </summary>
    //    public IEnumerable<AgreementElements> AgreementElementsActive
    //    {
    //        get
    //        {
    //            return (from le in LegalEntities from item in le.AgreementElements where item.IsActive != null && (bool) item.IsActive select item).ToList();
    //        }
    //    }

    //    //public List<Turnovers> Sales
    //    //{
    //    //    get { return LegalEntities.SelectMany(le => le.Sales).ToList(); }
    //    //} 

    //    /// <summary>
    //    /// Договора клиента
    //    /// </summary>
    //    public IEnumerable<Contracts> MainContracts
    //    {
    //        get
    //        {
    //            return LegalEntities.SelectMany(le => le.Contracts).Where(s=>s.IdParentContract==null).ToList();
    //        }
    //    } 

    //    /// <summary>
    //    /// Pеквизиты
    //    /// </summary>
    //    public IEnumerable<AgreementElements> AgreementElements
    //    {
    //        get
    //        {
    //            return (from le in LegalEntities from item in le.AgreementElements select item).ToList();
    //        }
    //    } 

    //    /// <summary>
    //    /// Возвращает юридическое лицо клиента по названию
    //    /// </summary>
    //    /// <param name="legalEntityName">Название юридического лица</param>
    //    /// <param name="exactName"></param>
    //    /// <returns>Юридическое имя</returns>
    //    public LegalEntities GetLegalEntityByName(string legalEntityName, bool exactName=false)
    //    {
            
    //        if(!exactName)
    //        {
    //            foreach (LegalEntities legalEntity in LegalEntities)
    //            {
    //                if (legalEntity.Name.ToUpper().Trim() == legalEntityName.ToUpper().Trim())
    //                    return legalEntity;
    //            }

    //        }
            
    //        else
    //        {
    //            foreach (LegalEntities legalEntity in LegalEntities)
    //            {
    //                if (legalEntity.Name == legalEntityName)
    //                    return legalEntity;
    //            }
    //        }

    //        return null;
    //    }

    //    /// <summary>
    //    /// Список городов клиента
    //    /// </summary>
    //    public string Cities
    //    {
    //        get
    //        {
    //            var result = new List<string>();


    //          // DB.Entities.LoadProperty(this,s=>s.LegalEntities);

    //            foreach(var item in LegalEntities)
    //            {
    //                foreach(var city in item.Cities)
    //                {
    //                    if(!result.Contains(city))
    //                    {
    //                        result.Add(city);
    //                    }
    //                }
    //            }

    //            string resultString="";
    //           foreach(var item in result)
    //           {
    //               resultString = resultString + " " + item;
    //           }

    //            return resultString;

    //        }
    //    }

    //    /// <summary>
    //    /// Менеджер
    //    /// </summary>
    //    public string Manager
    //    {
    //       get
    //       {
              
    //           if (IdManager != null)
    //           {
    //               UsersCollection col = new UsersCollection();
    //               CRM.Database.Model.Users user = col.GetItemById((int)IdManager) as CRM.Database.Model.Users; //DB.GetUserbyId((int)IdManager);
    //               if (user != null) return user.LocalizedFullName;
    //               }
    //           return "-";
    //       }
    //    }

    //    /// <summary>
    //    /// Список адресов клиента
    //    /// </summary>
    //    public List<Addresses>  Addresses
    //    {
    //        get
    //        {
    //            return LegalEntities.SelectMany(legalEntity => legalEntity.Addresses).ToList();
    //        }
    //    }
        
    //    ///// <summary>
    //    ///// Классификация клиента по отношонеию к профайн
    //    ///// </summary>
    //    //public string CustomerClassificationsProfineName
    //    //{
    //    //    get
    //    //    {
    //    //        if (IdCustomerClassificationsProfine != null)
    //    //        {
    //    //            var item = DB.GetCustomerClassificationsProfinebyId((int) IdCustomerClassificationsProfine);
                    
    //    //           if(item!=null)
    //    //           {
    //    //               switch (CRM.Database.Model.DB.CurrentLanguage)
    //    //               {
    //    //                   case CurrentLanguage.Russian:
    //    //                       return item.NameRu;
    //    //                       break;
    //    //                   case CurrentLanguage.English:
    //    //                       return item.NameEn;
    //    //                       break;
    //    //                   default:
    //    //                       throw new ArgumentOutOfRangeException();
    //    //               }
    //    //           }
    //    //        }
    //    //        return "";
    //    //    }
    //    //}
        
    //    ///// <summary>
    //    ///// Классификация клиента по бизнесу
    //    ///// </summary>
    //    //public string CustomerClassificationsByBusinessName
    //    //{
    //    //    get
    //    //    {
    //    //        if (IdCustomerClassificationsByBusiness != null)
    //    //        {
    //    //            var item = DB.GetCustomerClassificationsByBusinessbyId((int)IdCustomerClassificationsByBusiness);

    //    //            if (item != null)
    //    //            {
    //    //                switch (DB.CurrentLanguage)
    //    //                {
    //    //                    case CurrentLanguage.Russian:
    //    //                        return item.NameRu;
    //    //                        break;
    //    //                    case CurrentLanguage.English:
    //    //                        return item.NameEn;
    //    //                        break;
    //    //                    default:
    //    //                        throw new ArgumentOutOfRangeException();
    //    //                }
    //    //            }
    //    //        }
    //    //        return "";
    //    //    }
    //    //}

    //    ///// <summary>
    //    ///// Классификация клиента по обороту
    //    ///// </summary>
    //    //public string CustomerClassificationsTurnoverName
    //    //{
    //    //    get
    //    //    {
    //    //        if (IdCustomerClassificationsTurnover != null)
    //    //        {
    //    //            var item = DB.GetCustomerClassificationsTurnoverbyId((int) IdCustomerClassificationsTurnover);

    //    //            if (item != null)
    //    //            {
    //    //                switch (DB.CurrentLanguage)
    //    //                {
    //    //                    case CurrentLanguage.Russian:
    //    //                        return item.NameRu;
    //    //                        break;
    //    //                    case CurrentLanguage.English:
    //    //                        return item.NameEn;
    //    //                        break;
    //    //                    default:
    //    //                        throw new ArgumentOutOfRangeException();
    //    //                }
    //    //            }
    //    //        }
    //    //        return "";
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Добавление оборудования клиенту
    //    /// </summary>
    //    /// <param name="eq2add">Оборудование для добавления</param>
    //    /// <param name="userId">Логин пользователя, который собирается добавить</param>
    //    public void AddEquipment(CustomersEquipments eq2add, string userId)
    //    {

    //        DB.CustomersEquipmentInsert(eq2add, userId);
    //    }

    //    /// <summary>
    //    /// Контакты клиенты - только чтение
    //    /// </summary>
    //    public List<Contacts> Contacts
    //    {
    //        get
    //        {
    //            var result = new List<Contacts>();
    //            foreach (LegalEntities legalEntity in LegalEntities.Where(p => p.IsActive))
    //            {
    //                foreach (Contacts contact in legalEntity.Contacts)
    //                {
    //                    result.Add(contact);
    //                }
    //            }
    //            return result;
    //        }
    //    }

    //    ///// <summary>
    //    ///// Является ли клиент дилером
    //    ///// </summary>
    //    //public bool IsDealer
    //    //{
    //    //    get
    //    //    {
    //    //        return DB.Dealers.Contains(this);
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Удаление юридического лица
    //    /// </summary>
    //    /// <param name="legalEntities">Юридическое лицо</param>
    //    public void RemoveLegalEntity(LegalEntities legalEntities)
    //    {
    //        LegalEntities le = LegalEntities.Single(p => p.IdLegalEntity == legalEntities.IdLegalEntity);
    //        DB.Entities.LegalEntities.Remove(le);
    //        DB.Save();
    //    }

    //    public void AddLegalEntity(LegalEntities legalEntities, string userLoginName)
    //    {
    //        legalEntities.IdCustomer = IdCustomer;
    //        legalEntities.Customers = DB.GetCustomerById(IdCustomer);
    //        legalEntities.IdUser = userLoginName;

    //        legalEntities.IsActive = true;
    //        LegalEntities.Add(legalEntities);
            
    //        DB.Entities.LegalEntities.Add(legalEntities);
    //       // LegalEntities.Add(legalEntities);
    //        DB.Save();
    //    }

    //    /// <summary>
    //    /// Добавление контакта к юридическому лицу
    //    /// </summary>
    //    /// <param name="contact">Контакт</param>
    //    /// <param name="idLeggalEntity">Идентификатор юридического лица</param>
    //    /// <param name="userLogin">Логин пользователя</param>
    //    public void AddContact(Contacts contact, int idLeggalEntity, string userLogin)
    //    {
    //        LegalEntities le = LegalEntities.FirstOrDefault(p => p.IdLegalEntity == idLeggalEntity);
    //        contact.IdLegalEntity = idLeggalEntity;
    //        contact.IdUser = userLogin;
    //        contact.IsActive = true;
    //        if (!le.Contacts.Contains(contact))
    //            DB.Entities.Contacts.Add(contact);
    //        DB.Save();
    //    }

    //    public string ProfineRegionNameRu
    //    {
    //        get
    //        {
    //            //if (profineRegions != null)
    //            //    return profineRegions.NameRu;
    //            if (IdprofineRegion != null) 
    //                return   DB.GetprofineRegionbyId((int) IdprofineRegion).NameRu;
    //            return "";
    //        }
    //    }

    //    ///// <summary>
    //    ///// Локализованное название региона профайн
    //    ///// </summary>
    //    //public string ProfineRegionNameLocalized
    //    //{
    //    //    get
    //    //    {
    //    //        profineRegions profineregion = profineRegion;
    //    //        if(profineregion!=null)
    //    //        {
    //    //            switch(DB.CurrentLanguage)
    //    //            {
    //    //                case CurrentLanguage.Russian:
    //    //                    return profineregion.NameRu;
    //    //                    break;
    //    //                case CurrentLanguage.English:
    //    //                    return profineregion.NameEn;
    //    //                    break;
    //    //                default:
    //    //                    throw new ArgumentOutOfRangeException();
    //    //            }
    //    //        }
    //    //        return "";
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Обороты клиента
    //    /// </summary>
    //    public List<Turnovers> Turnovers
    //    {
    //        get
    //        {
    //            var result = new List<Turnovers>();

    //            foreach (LegalEntities legalEntity in LegalEntities)
    //            {
    //                result.AddRange(legalEntity.Turnovers);
    //            }
    //            return result;
    //        }
    //    }
        
    //    ///// <summary>
    //    ///// Регион профайн
    //    ///// </summary>
    //    //public profineRegions profineRegion
    //    //{
    //    //    get
    //    //    {
    //    //        if (IdprofineRegion != null) return DB.GetprofineRegionbyId((int) IdprofineRegion);
    //    //        return null;
    //    //    }
    //    //}

    //    ///// <summary>
    //    ///// Удаление оборудования
    //    ///// </summary>
    //    ///// <param name="item">Оборудование для удаления</param>
    //    //public void RemoveEquipment(CustomersEquipments item)
    //    //{
    //    //    DB.Entities.CustomersEquipments.Remove(
    //    //        DB.CustomersEquipments.FirstOrDefault(p => p.IdCustomersEquipments == item.IdCustomersEquipments));
    //    //    DB.Save();
    //    //}

    //    ///// <summary>
    //    ///// Удаление контакта
    //    ///// </summary>
    //    ///// <param name="idContact">Идентификатор контакта</param>
    //    //public void DeleteContact(int idContact)
    //    //{
    //    //   DB.Entities.Contacts.Remove(DB.Contacts.FirstOrDefault(p=>p.IdContact==idContact));
    //    //    DB.Save();
    //    //}
       
    //    /// <summary>
    //    /// Обновление адресной информации
    //    /// </summary>
    //    /// <param name="item"></param>
    //    /// <param name="userLoginName"></param>
    //    public void UpdateAddress(Addresses item, string userLoginName)
    //    {
    //        var address4Update = Addresses.FirstOrDefault(c => c.IdAddress == item.IdAddress);

    //        if(address4Update!=null)
    //        {
    //            if (item != null)
    //            {
    //                address4Update.IdAddressesItem = item.IdAddressesItem;
    //                if (!string.IsNullOrEmpty(item.Street))
    //                    address4Update.Street = item.Street;
    //                if (!string.IsNullOrEmpty(item.ZipCode)) address4Update.ZipCode = item.ZipCode;
    //                if (!string.IsNullOrEmpty(item.Fax)) address4Update.Fax = item.Fax;
    //                if (!string.IsNullOrEmpty(item.House)) address4Update.House = item.House;
    //                if (!string.IsNullOrEmpty(item.Comments)) address4Update.Comments = item.Comments;
    //                if (item.IdAddressesType>0) address4Update.IdAddressesType = item.IdAddressesType;
    //                if (item.IdLegalEntity>0) address4Update.IdLegalEntity = item.IdLegalEntity;
    //                address4Update.IdUser = userLoginName;
    //                address4Update.IsActive = true;
    //                if (!string.IsNullOrEmpty(item.Phone)) address4Update.Phone = item.Phone;
    //                address4Update.IsPrimary = item.IsPrimary;
    //                //int idAddress4Delete = 0;
    //                //foreach (var addr in address4Update.LegalEntities.Addresses.Where(addr => addr.IdUser == null).Where(addr => addr.IsActive == false))
    //                //{
    //                //    idAddress4Delete = addr.IdAddress;
    //                //    break;
    //                //}

    //                //if (idAddress4Delete != 0)
    //                //{
    //                //    DB.Entities.Addresses.Remove(DB.GetAddressById(idAddress4Delete));
    //                //}


    //                for (int i = 0; i < address4Update.LegalEntities.Addresses.Count; i++)
    //                {
    //                    var address = address4Update.LegalEntities.Addresses.ToList()[i];
    //                    if (address.IdUser == null)
    //                        if (address.IsActive == false)
    //                        {
    //                            DB.Entities.Addresses.Remove(address);
    //                        }
    //                }

    //                if(address4Update.IsPrimary==true)
    //                {
    //                    foreach(var addr in address4Update.LegalEntities.Addresses)
    //                    {
                            
    //                        if(addr.IdAddress!=address4Update.IdAddress)
    //                        {
    //                            addr.IsPrimary = false;
    //                        }
    //                    }
    //                }

    //                if(address4Update.LegalEntities.Addresses.Count==1)
    //                    address4Update.IsPrimary = true;
    //            }
                


    //            DB.Save();
    //        }
    //    }
        
    //    /// <summary>
    //    /// Добавление адреса
    //    /// </summary>
    //    /// <param name="item">Адрес</param>
    //    /// <param name="userLoginName">Плльзователь</param>
    //    public void AddAddress(Addresses item, string userLoginName)
    //    {
    //        var address4Update = new Addresses();

    //        if (address4Update != null)
    //        {
    //            if (item != null)
    //            {
    //                address4Update.IdAddressesItem = item.IdAddressesItem;
    //                if (!string.IsNullOrEmpty(item.Street))
    //                    address4Update.Street = item.Street;
    //                if (!string.IsNullOrEmpty(item.ZipCode)) address4Update.ZipCode = item.ZipCode;
    //                if (!string.IsNullOrEmpty(item.Fax)) address4Update.Fax = item.Fax;
    //                if (!string.IsNullOrEmpty(item.House)) address4Update.House = item.House;
    //                if (!string.IsNullOrEmpty(item.Comments)) address4Update.Comments = item.Comments;
    //                if (item.IdAddressesType > 0) address4Update.IdAddressesType = item.IdAddressesType;
    //                if (item.IdLegalEntity > 0) address4Update.IdLegalEntity = item.IdLegalEntity;
    //                address4Update.IdUser = userLoginName;
    //                address4Update.IsActive = true;
    //               if(item.IsPrimary!=null) address4Update.IsPrimary = item.IsPrimary; else
    //                   address4Update.IsPrimary = false;
    //                if (!string.IsNullOrEmpty(item.Phone)) address4Update.Phone = item.Phone;

    //                //int idAddress4Delete = 0;
    //                //foreach (var addr in address4Update.LegalEntities.Addresses.Where(addr => addr.IdUser == null).Where(addr => addr.IsActive == false))
    //                //{
    //                //    idAddress4Delete = addr.IdAddress;
    //                //    break;
    //                //}
    //                //if (idAddress4Delete != 0)
    //                //{
    //                //    DB.Entities.Addresses.Remove(DB.GetAddressById(idAddress4Delete));
    //                //}

    //                if (address4Update.IsPrimary == true)
    //                {
    //                    if(address4Update.IdLegalEntity!=null)
    //                    {
    //                        if (address4Update.LegalEntities == null)
    //                            address4Update.LegalEntities = DB.GetLegalEntityById((int) address4Update.IdLegalEntity);
    //                        foreach (var addr in address4Update.LegalEntities.Addresses)
    //                        {

    //                            if (addr.IdAddress != address4Update.IdAddress)
    //                            {
    //                                addr.IsPrimary = false;
    //                            }
    //                        }
    //                    }
    //                }
    //            }

    //            DB.Entities.Addresses.Add(address4Update);

    //          //  int idAddress4Delete = 0;
    //            for (int i = 0; i < address4Update.LegalEntities.Addresses.Count; i++)
    //            {
    //                var address = address4Update.LegalEntities.Addresses.ToList()[i];
    //                if(address.IdUser==null)
    //                    if(address.IsActive==false)
    //                    {
    //                        DB.Entities.Addresses.Remove(address);
    //                    }
    //            }

    //            //foreach (var addr in address4Update.LegalEntities.Addresses.Where(addr => addr.IdUser == null).Where(addr => addr.IsActive == false))
    //            //{
    //            //    idAddress4Delete = addr.IdAddress;
    //            //    break;
    //            //}
    //            //if (idAddress4Delete != 0)
    //            //{
    //            //    DB.Entities.Addresses.Remove(DB.GetAddressById(idAddress4Delete));
    //            //}

    //            DB.Save();
    //        }
    //    }

    //    public void DeleteAddress(Addresses item, string name)
    //    {
    //        var address4Update = Addresses.FirstOrDefault(c => c.IdAddress == item.IdAddress);
    //        DB.Entities.Addresses.Remove(address4Update);

    //        DB.Save();
    //    }

        
    //    /// <summary>
    //    /// Добавление реквизитов юр. лицу
    //    /// </summary>
    //    /// <param name="agreementElement">Реквизиты</param>
    //    /// <param name="userLogin">Пользователь, который сделал изменения</param>
    //    public void AddAgreementElement(AgreementElements agreementElement, string userLogin)
    //    {
    //        if(agreementElement!=null)
    //        {
    //            if(agreementElement.IdLegalEntity!=0)
    //            {
    //                agreementElement.IsActive = true;
    //                DB.Entities.AgreementElements.Add(agreementElement);
    //                DB.Save();
    //            }
    //        }
    //    }

        
    //    /// <summary>
    //    /// Удаление реквизитов
    //    /// </summary>
    //    /// <param name="agreementElements">Реквизиты   </param>
    //    public void RemoveAgreementElement(AgreementElements agreementElements)
    //    {
    //        AgreementElements aeToDel =
    //            DB.Entities.AgreementElements.FirstOrDefault(s => s.IdAgreementElement == agreementElements.IdAgreementElement);
    //        if(aeToDel!=null)
    //        {
    //            DB.Entities.AgreementElements.Remove(aeToDel);
    //            DB.Save();
    //        }

    //    }
    //}

    //#endregion

    //#region LegalEntities

    ///// <summary>
    ///// Расширение юридических лиц
    ///// </summary>
    //public partial class LegalEntities
    //{
    //    /// <summary>
    //    /// Обновление юридического лица
    //    /// </summary>
    //    /// <param name="legalEntities">Юридическое лицо, новое состояние</param>
    //    /// <param name="userLogin">Логин пользователя, который делает изменение</param>
    //    public void Update(LegalEntities legalEntities, string userLogin)
    //    {
    //        IdUser = userLogin;
    //        Name = legalEntities.Name;
    //        NumberInSAP = legalEntities.NumberInSAP;

    //        DB.Save();
    //    }


    //    /// <summary>
    //    /// Главный адрес
    //    /// </summary>
    //    public Addresses PrimaryAddress
    //    {
    //        get
    //        {
    //            if(Addresses.Count==0)
    //                return null;
    //            Addresses address=null;
    //            foreach(var add in Addresses)
    //            {
    //                if((bool) add.IsPrimary)
    //                {
    //                    address = add;
    //                    break;
    //                }
    //            }
                
    //            if (address == null)
    //            {
    //                address = Addresses.First();
    //                address.IsPrimary = true;
    //                DB.Save();
    //            }
    //            return address;
    //        }
    //    }

    //    private List<Turnovers> _sales;
    //    //public int IdProfineRegion
    //    //{
    //    //    get
    //    //    {
    //    //        foreach(var item in Addresses)
    //    //        {
    //    //            if (item.profineRegion != null) return item.profineRegion.IdProfineRegion;
    //    //        }
    //    //        if (Customers != null && Customers.IdprofineRegion != null) return (int) Customers.IdprofineRegion;

    //    //        return 0;
    //    //    }
    //    //}

    //    //public List<Turnovers> Sales
    //    //{
    //    //    get
    //    //    {
    //    //        if(_sales==null)
    //    //        _sales= DB.Turnovers.Where(item => item.IdDealerLegalEntity == IdLegalEntity).ToList();
    //    //        return _sales;
    //    //    }
    //    //} 

    //    /// <summary>
    //    /// Название клиента
    //    /// </summary>
    //    public string CustomerName
    //    {
    //        get { return Customers.Name; }
    //    }

    //    public int? CustomerSAPNumber
    //    {
    //        get { return Customers.NumberInSAP; }
    //    }

    //    /// <summary>
    //    /// Первый оборото клиента
    //    /// </summary>
    //    public Turnovers FirstTurnover
    //    {
    //        get
    //        {
    //            var tempCol = from turnover in Turnovers orderby turnover.Period ascending select turnover;
    //            return tempCol.FirstOrDefault();

    //        }
    //    }
       
    //    /// <summary>
    //    /// Города юридических лиц одной строкой
    //    /// </summary>
    //    public string CitiesStr
    //    {
    //        get
    //        {
    //            return Cities.Aggregate("", (current, item) => current + " " + item);
    //        }
    //    }
        
    //    /// <summary>
    //    /// Список городов
    //    /// </summary>
    //    public List<string>  Cities
    //    {
    //        get
    //        {
    //            var result = new List<string>();


    //            //if(Addresses.Count==0)
    //            //{
    //            //    DB.Entities.LoadProperty(this, s=>s.Addresses);
    //            //}
    //            foreach(var item in Addresses)
    //            {
                    
    //                if(item.Settlements != null && !result.Contains(item.Settlements.NameRu))
    //                {
    //                    result.Add(item.Settlements.NameRu);
    //                }
    //            }

    //            return result;
    //        }
    //    }



    //    //public string PrimaryCity
    //    //{
    //    //get
    //    //{
    //    //    if (PrimaryAddress != null)
    //    //        if (PrimaryAddress.Settlements != null) return PrimaryAddress.Settlements.NameLocalized;
    //    //    return "-";
    //    //}
    //    //}

    //    /// <summary>
    //    /// Менеджер
    //    /// </summary>
    //    public string Manager
    //    {
    //        get

    //                {
    //                    return Customers.Manager;
    //                }
    //}
        
        
    //    /// <summary>
    //    /// Название региона профайн по-русски
    //    /// </summary>
    //    public string profineRegionRu
    //    {
    //        get { return Customers.ProfineRegionNameRu; }
    //    }


    //    //public string PrimaryRegion
    //    //{
    //    //    get
    //    //    {
    //    //        if (PrimaryAddress != null)
    //    //            return PrimaryAddress.ProfineRegionNameLocalized;
    //    //        return "-";
    //    //    }
    //    //}

    //    ///// <summary>
    //    ///// Локализованная строка областей юр. лица
    //    ///// </summary>
    //    //public string RegionsLocalizedString
    //    //{
    //    //    get
    //    //    {
    //    //        return Regions.Aggregate("", (current, item) => item != null ? current + item.NameRu + ", " : null);
    //    //    }
    //    //}
        
    //    ///// <summary>
    //    ///// Области, в которых находится клиент
    //    ///// </summary>
    //    //public List<Regions> Regions
    //    //{
    //    //    get { var result = new List<Regions>();
            
    //    //        foreach(var item in Addresses)
    //    //        {
    //    //            if(!result.Contains(item.Region))
    //    //            {
    //    //                result.Add(item.Region);
    //    //            }
    //    //        }
    //    //        return result;
    //    //    }
    //    //}

    //    ///// <summary>
    //    ///// Локализованное название региона профайн
    //    ///// </summary>
    //    //public string ProfineRegionNameLocalized
    //    //{
    //    //    get
    //    //    {
    //    //        foreach(var address in Addresses)
    //    //        {
    //    //            return address.ProfineRegionNameLocalized;
    //    //        }
    //    //        return Customers.ProfineRegionNameLocalized;
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Клиентский номер клиента
    //    /// </summary>
    //    public int SequentialNumber
    //    {
    //        get
    //        {
    //            if (Customers != null) return Customers.SequentialNumber;
    //            return 0;
    //        }
    //    }
    //}

    //#endregion

    //#region Countries

    ///// <summary>
    ///// Расширение класса Страна
    ///// </summary>
    //public partial class Countries
    //{
        
    //    /// <summary>
    //    /// Локализованное название страны
    //    /// </summary>
    //    public string CountryNameLocalized
    //    {
    //        get
    //        {
    //            switch(DB.CurrentLanguage)
    //            {
    //                case CurrentLanguage.Russian:
    //                    return CountryRu;
    //                    break;
    //                case CurrentLanguage.English:
    //                    return CountryEn;
    //                    break;
    //                default:
    //                    throw new ArgumentOutOfRangeException();
    //            }
    //        }
    //    }
    //}

    //#endregion

    //#region Contracts

    ///// <summary>
    ///// Контракты
    ///// </summary>
    //public partial class Contracts
    //{
        
    //    /// <summary>
    //    /// Тип контракта
    //    /// </summary>
    //    public string ContractType
    //    {
    //        get
    //        {
    //            if(ContractsTypes!=null)
    //            {
    //                switch(DB.CurrentLanguage)
    //                {
    //                    case CurrentLanguage.Russian:
    //                        return ContractsTypes.NameRu;
    //                        break;
    //                    case CurrentLanguage.English:
    //                        return ContractsTypes.NameEn;
    //                        break;
    //                    default:
    //                        throw new ArgumentOutOfRangeException();
    //                }
    //            }
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// Название юридического лица
    //    /// </summary>
    //    public string LegalEntityName
    //    {
    //        get
    //        {
    //            if(LegalEntities!=null)
    //            {
    //                return LegalEntities.Name;
    //            }
    //            return "";
    //        }
    //    }


    //    public string FirstCopyHolderName
    //    {
    //       get
    //       {
    //           if(Id1stCopyHolder!=null)
    //           {
    //               return DB.GetCopyHolderById((int) Id1stCopyHolder).Name;
    //           }
    //           return "";
    //       }
    //    }

    //    public string SecondCopyHolderName
    //    {
    //        get
    //        {
    //            if (Id2ndCopyHolder != null)
    //            {
    //                return DB.GetCopyHolderById((int)Id2ndCopyHolder).Name;
    //            }
    //            return "";
    //        }
    //    }
       
    //    /// <summary>
    //    /// Статус контракта
    //    /// </summary>
    //    public string ContractStatus
    //    {
    //        get
    //        {
    //            if (ContractsStatuses != null)
    //            {
    //                switch(DB.CurrentLanguage)
    //                {
    //                    case CurrentLanguage.Russian:
    //                        return ContractsStatuses.NameRu;
    //                        break;
    //                    case CurrentLanguage.English:
    //                        return ContractsStatuses.NameEn;
    //                        break;
    //                    default:
    //                        throw new ArgumentOutOfRangeException();
    //                }
    //            }
    //                return "";
    //        }
    //    }
    //}

    //#endregion

    #region Contacts

    /// <summary>
    /// Расширение класса Contacts
    /// </summary>
    public partial class Contacts
    {
        ///// <summary>
        ///// Обновление контакта
        ///// </summary>
        ///// <param name="contacts">Контакт</param>
        ///// <param name="userLogin">Логин пользователя</param>
        //public void Update(Contacts contacts, string userLogin)
        //{
        //    //IdUser = userLogin;
        //    //Name = contacts.Name;
        //    //Position = contacts.Position;
        //    //Phone = contacts.Phone;
        //    //Email = contacts.Email;
        //    //Birthday = contacts.Birthday;
        //    //Remind = contacts.Remind;
        //    //Comments = contacts.Comments;
        //    //IdLegalEntity = contacts.IdLegalEntity;
            
        //    ////LoginName = contacts.LoginName;
        //    ////Pass = contacts.Pass;

        //    //DB.Save();
        //}

        ///// <summary>
        ///// Обновление в базе логина и пароля контакта в объекте БЕЗ проверки уникальности логина в системе 
        ///// </summary>
        //public void UpdateLoginAndPassword()
        //{
        //    if (this.IdContact <= 0) return;
        //    var contacts = DB.GetContactById(IdContact);
        //    if (contacts == null) return;
        //    contacts.LoginName = this.LoginName;
        //    contacts.Pass = this.Pass;
        //    DB.Save();
        //}
    }

    #endregion

    //#region EquipmentTypes

    ///// <summary>
    ///// Расширение класса EquipmentTypes
    ///// </summary>
    //public partial class EquipmentTypes
    //{
    //    /// <summary>
    //    /// Производители обородувания выбранного типа
    //    /// </summary>
    //    public List<Vendors> Vendors
    //    {
    //        get
    //        {
    //            var result = new List<Vendors>();

    //            foreach (Equipments equipment in Equipments)
    //            {
    //                if (!result.Contains(equipment.Vendors)) result.Add(equipment.Vendors);
    //            }

    //            return result;
    //        }
    //    }
        
    //}

    //#endregion

    //#region ControllersAndActions

    ///// <summary>
    ///// Расширение класса
    ///// </summary>
    ////public partial class ControllersAndActions
    ////{
    ////    /// <summary>
    ////    /// Строковое значение Controller/Action
    ////    /// </summary>
    ////    public string ControllerAndAction
    ////    {
    ////        get { return Controller + " / " + Action; }
    ////    }
    ////}

    //#endregion

    //#region Settlements

    ///// <summary>
    ///// Расширение класса
    ///// </summary>
    //public partial class Settlements
    //{
    //    ///// <summary>
    //    ///// Название региона
    //    ///// </summary>
    //    //public string RegionName
    //    //{
    //    //    get
    //    //    {
    //    //        if (Regions != null)
    //    //        switch (DB.CurrentLanguage)
    //    //        {
    //    //            case CurrentLanguage.Russian:
    //    //                 return Regions.NameRu;
    //    //                break;
    //    //            case CurrentLanguage.English:
    //    //                return Regions.NameEn;
    //    //                break;
    //    //            default:
    //    //                throw new ArgumentOutOfRangeException();
    //    //        }
    //    //        return "";
    //    //    }
    //    //}


    //    //public string NameLocalized
    //    //{
    //    //    get
    //    //    {
    //    //        switch(DB.CurrentLanguage)
    //    //        {
    //    //            case CurrentLanguage.Russian:
    //    //                return NameRu;
    //    //                break;
    //    //            case CurrentLanguage.English:
    //    //                return NameEn;
    //    //                break;
    //    //            default:
    //    //                throw new ArgumentOutOfRangeException();
    //    //        }
    //    //    }
    //    //}

    //    public int IdDistrict
    //    {
    //        get
    //        {
    //            if (Regions != null) if (Regions.IdDistrict != null) return (int) Regions.IdDistrict;
    //            return 0;
    //        }
    //    }
        
    //    ///// <summary>
    //    ///// Название области
    //    ///// </summary>
    //    //public string DistrictName
    //    //{
    //    //    get
    //    //    {
    //    //        if (Regions != null)
    //    //            if (Regions.Districts != null) 
    //    //            switch(DB.CurrentLanguage)
    //    //            {
    //    //                case CurrentLanguage.Russian:
    //    //                    return Regions.Districts.NameRu;
    //    //                    break;
    //    //                case CurrentLanguage.English:
    //    //                    return Regions.Districts.NameEn;
    //    //                    break;
    //    //                default:
    //    //                    throw new ArgumentOutOfRangeException();
    //    //            }
    //    //        return "";
    //    //    }
    //    //}

        
    //    ///// <summary>
    //    ///// Название района
    //    ///// </summary>
    //    //public string AreaName
    //    //{
    //    //    get
    //    //    {
    //    //        if (Areas != null) 
    //    //            switch(DB.CurrentLanguage)
    //    //            {
    //    //                case CurrentLanguage.Russian:
    //    //                  return  Areas.NameRu;
    //    //                    break;
    //    //                case CurrentLanguage.English:
    //    //                    return Areas.NameEn;
    //    //                    break;
    //    //                default:
    //    //                    throw new ArgumentOutOfRangeException();
    //    //            }
    //    //        return "";
    //    //    }
    //    //}

        
    //    /// <summary>
    //    /// Получить регионы в стране
    //    /// </summary>
    //    /// <param name="idCountry">Идентификатор страны</param>
    //    /// <returns>Регионы</returns>
    //    public IEnumerable<Districts> GetDistrictsByCountryId(int idCountry)
    //    {
    //        return DB.DistrictsActive.Where(p => p.IdCountry == idCountry);
    //    }

    //    //public IQueryable<Regions> GetRegionsByCountryId(int idCountry)
    //    //{
    //    //    return DB.RegionsActive.Where(p=>p.id)
    //    //} 

        
    //    /// <summary>
    //    /// Страна
    //    /// </summary>
    //    public Countries Country
    //    {
    //        get
    //        {
    //            if (Regions != null) if (Regions.Districts != null) return Regions.Districts.Countries;
    //            return null;
    //        }
    //    }

        
    //    /// <summary>
    //    /// Страна по-русски
    //    /// </summary>
    //    public string CountryRu
    //    {
    //        get { return Regions.Districts.Countries.CountryRu; }
    //    }

        
    //    /// <summary>
    //    /// Локализованное название страны
    //    /// </summary>
    //    public string CountryNameLocalized
    //    {
    //        get 
    //        { 
    //            if (Regions != null) 
    //                if (Regions.Districts != null)
    //                    if (Regions.Districts.Countries != null) 
    //                        switch(DB.CurrentLanguage)
    //                        {
    //                            case CurrentLanguage.Russian:
    //                                return Regions.Districts.Countries.CountryRu;
    //                                break;
    //                            case CurrentLanguage.English:
    //                                return Regions.Districts.Countries.CountryEn;
    //                                break;
    //                            default:
    //                                throw new ArgumentOutOfRangeException();
    //                        }
    //            return "";
    //        }
    //    }

    //    private int _currentCountry;

        
    //    /// <summary>
    //    /// Идентификатор страны
    //    /// </summary>
    //    public int IdCountry
    //    {
    //        get 
    //        { if (Regions != null) if (Regions.Districts != null)
    //            if (Regions.Districts.Countries != null) return Regions.Districts.Countries.IdCountry;
    //            return 0;
    //        }
    //    }

    //    private int _currentDistrict;

        
    //    /// <summary>
    //    /// Текущая страна
    //    /// </summary>
    //    public int CurrentCountry
    //    {
    //        get
    //        {
    //            if (_currentCountry == 0) _currentCountry = 1;
    //            return _currentCountry;
    //        }
    //        set { _currentCountry = value; }
    //    }

        
    //    /// <summary>
    //    /// Текущая область
    //    /// </summary>
    //    public int CurrentDistrict
    //    {
    //        get
    //        {
    //            if (_currentDistrict == 0) if (Regions != null && Regions.IdDistrict != null) _currentDistrict = (int) Regions.IdDistrict;
    //            return _currentDistrict;
    //        }
    //        set { _currentDistrict = value; }
    //    }

        
    //    /// <summary>
    //    /// Текущий регион
    //    /// </summary>
    //    public int CurrentRegion
    //    {
    //        get
    //        {
    //            if (_currentRegion == 0) if (Regions != null) _currentRegion = Regions.IdRegion;
    //            return _currentRegion;
    //        }
    //        set { _currentRegion = value; }
    //    }

    //    private int _currentRegion;
    //}

    //#endregion
    
    //#region Addresses

    ///// <summary>
    ///// Расширение класса Addresses
    ///// </summary>
    //public partial class Addresses
    //{

       
        
    //    /// <summary>
    //    /// Русское название для города
    //    /// </summary>
    //    public string SettlementNameRu
    //    {
    //        get
    //        {
    //            if(Settlements!=null)
    //                return Settlements.NameRu;
    //            return "";
    //        }
    //    }


    //    public ICollection<Regions> Regions
    //    {
    //        get { return profineRegion.Regions; }
    //    }

    //    public int? IdSettlement
    //    {
    //        get { return IdAddressesItem; }
    //        set { IdAddressesItem = value; }
    //    }

    //    /// <summary>
    //    /// Клиент
    //    /// </summary>
    //    public Customers Customer
    //    {
    //        get
    //        {
    //            if (LegalEntities != null)
    //                return LegalEntities.Customers;
    //            return null;
    //        }
    //    }

    //    public int IdProfineRegion
    //    {
    //        get { if (profineRegion != null) return profineRegion.IdProfineRegion;
    //            return -1;
    //        }
    //    }
        
    //    /// <summary>
    //    /// Идентификатор district
    //    /// </summary>
    //    public int? IdDistrict
    //    {
    //        get
    //        {
    //            if (District == null)
    //                return null;
    //            return District.IdDistrict;
    //        }
    //    }

    //    /// <summary>
    //    /// Id region
    //    /// </summary>
    //    public int? IdRegion
    //    {
    //        get
    //        {
    //            if(Region==null)
    //                return null;
    //            return Region.IdRegion;
    //        }
    //    }

        
    //    /// <summary>
    //    /// Идентификатор страны
    //    /// </summary>
    //    public int? IdCountry
    //    {
    //        get
    //        {
    //            if(Country==null)
    //                return null;
    //            else
    //            {
    //                return Country.IdCountry;
    //            }
    //        }
           
    //    }

    //    protected int? idCountry;
        
    //    /// <summary>
    //    /// Текущая страна
    //    /// </summary>
    //    private int _currentCountry;
        
    //    /// <summary>
    //    /// Текущий регион
    //    /// </summary>
    //    private int _currentRegion;
        
        
    //    /// <summary>
    //    /// Текущий дистрикт
    //    /// </summary>
    //    private int _currentDistrict;

    //    /// <summary>
    //    /// Название области
    //    /// </summary>
    //    public string DistrictName
    //    {
    //        get
    //        {
    //            if (District != null)
    //               switch (DB.CurrentLanguage)
    //                    {
    //                        case CurrentLanguage.Russian:
    //                            return District.NameRu;
    //                            break;
    //                        case CurrentLanguage.English:
    //                            return District.NameEn;
    //                            break;
    //                        default:
    //                            throw new ArgumentOutOfRangeException();
    //                    }
    //            return "";
    //        }
    //    }


    //    //public Addresses Address
    //    //{
    //    //    get
    //    //    {
    //    //        return this;
    //    //    }
    //    //    set
    //    //    {
    //    //       var currentObject= LegalEntities.Addresses.FirstOrDefault(s => s.IdAddress == this.IdAddress);
    //    //        currentObject = value;
    //    //    }
    //    //}


    //    /// <summary>
    //    /// Локализованное название населённого пункта
    //    /// </summary>
    //    public string SettlementsLocalized
    //    {
    //        get
    //        {
    //            if(Settlements!=null)
    //            {
    //                switch(DB.CurrentLanguage)
    //                {
    //                    case CurrentLanguage.Russian:
    //                        return Settlements.NameRu;
    //                        break;
    //                    case CurrentLanguage.English:
    //                        return Settlements.NameEn;
    //                        break;
    //                    default:
    //                        throw new ArgumentOutOfRangeException();
    //                }
    //            }
    //            return "";
    //        }
    //    }

        
    //    /// <summary>
    //    /// Название области по-русски
    //    /// </summary>
    //    public string AreasNameRu
    //    {
    //        get
    //        {
    //            if(Settlements != null && Settlements.Areas!=null)
    //            {
    //                return Settlements.Areas.NameRu;

    //            }
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// Локализованное название области
    //    /// </summary>
    //    public string AreasNameLocalized
    //    {
    //        get
    //        {
    //            if(Settlements!=null)
    //                if(Settlements.Areas!=null)
    //                {
    //                    switch(DB.CurrentLanguage)
    //                    {
    //                        case CurrentLanguage.Russian:
    //                            return Settlements.Areas.NameRu;
    //                            break;
    //                        case CurrentLanguage.English:
    //                            return Settlements.Areas.NameEn;
    //                            break;
    //                        default:
    //                            throw new ArgumentOutOfRangeException();
    //                    }
    //                }
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// Название региона по-русски
    //    /// </summary>
    //    public string RegionNameRu
    //    {
    //        get
    //        {
    //            if (Region != null) return Region.NameRu;
    //            return "";
    //        }
    //    }

        
    //    /// <summary>
    //    /// Локализованное название региона
    //    /// </summary>
    //    public string RegionNameLocalized
    //    {
    //        get
    //        {
    //            if(Region!=null)
    //            {
    //                switch(DB.CurrentLanguage)
    //                {
    //                    case CurrentLanguage.Russian:
    //                        return Region.NameRu;
    //                        break;
    //                    case CurrentLanguage.English:
    //                      return  Region.NameEn;
    //                        break;
    //                    default:
    //                        throw new ArgumentOutOfRangeException();
    //                }
    //            }
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// Регион
    //    /// </summary>
    //    public Regions Region
    //    {
    //        get
    //        {
    //            if(Settlements==null)
    //            {
    //                if((IdSettlement==null) | (IdSettlement==0))
    //                {
    //                    IdSettlement = 1;
    //                }
    //                if(IdSettlement!=null)
    //                if(IdSettlement!=0)
    //                    Settlements = DB.GetSettlementbyId((int) IdSettlement);
    //            }
    //            return Settlements != null ? Settlements.Regions : null;
    //        }
    //    }

        
    //    /// <summary>
    //    /// District
    //    /// </summary>
    //    public Districts District
    //    {
    //        get
    //        {
    //           if(Region!=null)
    //               return Region.Districts;
    //            return null;
    //        }
    //    }
        
    //    /// <summary>
    //    /// Название региона по-русски
    //    /// </summary>
    //    public string DistrictNameRu
    //    {
    //        get
    //        {
    //            return District != null ? District.NameRu : "";
    //        }
    //    }

        
    //    /// <summary>
    //    /// Локализованное название district'a
    //    /// </summary>
    //    public string DistrictNameLocalized
    //    {
    //        get
    //        {
    //            if(District==null)
    //            {
    //                return "";
    //            }
    //            switch (DB.CurrentLanguage)
    //            {
    //                case CurrentLanguage.Russian:
    //                    return District.NameRu;
    //                    break;
    //                case CurrentLanguage.English:
    //                    return District.NameEn;
    //                    break;
    //                default:
    //                    throw new ArgumentOutOfRangeException();
    //            }
    //        }
    //    }

        
    //    /// <summary>
    //    /// Название региона профайн по-русски
    //    /// </summary>
    //    public string ProfineRegionNameRu
    //    {
    //        get { return profineRegion != null ? profineRegion.NameRu : ""; }
    //    }

        
    //    /// <summary>
    //    /// Регион профайн
    //    /// </summary>
    //    public profineRegions profineRegion
    //    {
    //        get
    //        {
    //            if (Settlements != null)
    //                if (Settlements.Regions != null)
    //                    return Settlements.Regions.profineRegions;
    //            if (Customer != null) return Customer.profineRegion;
    //            if(IdAddressesItem!=null)
    //            {
    //                return DB.GetLegalEntityById((int) IdLegalEntity).Customers.profineRegion;
    //            }
    //            return null;
    //        }
    //    }

        
    //    /// <summary>
    //    /// Локализованное название региона профайн 
    //    /// </summary>
    //    public string ProfineRegionNameLocalized
    //    {
    //        get
    //        {
    //            if(profineRegion!=null)
                
    //                        switch(DB.CurrentLanguage)
    //                        {
    //                            case CurrentLanguage.Russian:
                        
    //                                            return profineRegion.NameRu;
    //                                break;
    //                            case CurrentLanguage.English:
    //                                return profineRegion.NameEn;
    //                                break;
    //                            default:
    //                                throw new ArgumentOutOfRangeException();
    //                        }
    //            return "";
    //        }
    //    }

        
    //    /// <summary>
    //    /// Название страны по-русски
    //    /// </summary>
    //    public string CountryNameRu
    //    {
    //        get { return Country != null ? Country.CountryRu : ""; }
    //    }
        

    //    /// <summary>
    //    /// Страна
    //    /// </summary>
    //    public Countries Country
    //    {
    //        get
    //        {
    //            if (District != null)
    //                return District.Countries;
    //            return null;
    //        }
    //    }

       
        
    //    ///// <summary>
    //    ///// Локализованное название страны
    //    ///// </summary>
    //    //public string CountryNameLocalized
    //    //{
    //    //    get
    //    //    {
    //    //        if (Settlements != null)
    //    //            if (Settlements.Regions != null)
    //    //                if (Settlements.Regions.Districts != null)
    //    //                    if (Settlements.Regions.Districts.Countries != null)
    //    //                       switch(DB.CurrentLanguage)
    //    //                       {
    //    //                           case CurrentLanguage.Russian:
                       
    //    //                                               return Country.CountryRu;
    //    //                               break;
    //    //                           case CurrentLanguage.English:
    //    //                               return Country.CountryEn;
    //    //                               break;
    //    //                           default:
    //    //                               throw new ArgumentOutOfRangeException();
    //    //                       }
    //    //        return "";
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Текущая страна
    //    /// </summary>
    //    public int CurrentCountry
    //    {
    //        get
    //        {
    //            if (_currentCountry == 0)
    //                if (Country != null) _currentCountry = Country.IdCountry;
    //            return _currentCountry;
    //        }
    //        set { _currentCountry = value; }
    //    }

    //    /// <summary>
    //    /// Текущий регион
    //    /// </summary>
    //    public int CurrentRegion
    //    {
    //        get
    //        {
    //            if (_currentRegion == 0)
    //                if (Region != null)
    //                    _currentRegion = Region.IdRegion;
    //            return _currentRegion;
    //        }
    //        set { _currentRegion = value; }
    //    }

    //    /// <summary>
    //    /// Текущий дистрикт
    //    /// </summary>
    //    public int CurrentDistrict
    //    {
    //        get
    //        {
    //            if(_currentDistrict==0)
    //                if(District!=null)
    //                {
    //                    _currentDistrict = District.IdDistrict;
    //                }
    //            return _currentDistrict;
    //        }
    //        set { _currentDistrict = value; }
    //    }
    //}

    //#endregion

    //#region Turnovers

    ///// <summary>
    ///// Расширение класса Turnovers
    ///// </summary>
    //public partial class Turnovers
    //{
    //    /// <summary>
    //    /// Идентификатор региона профайн
    //    /// </summary>
    // //   private int _idProfineRegion;


    //    //public EuroMoney EuroAmount
    //    //{
    //    //    get
    //    //    {
    //    //        return new EuroMoney(Amount);
    //    //    }
    //    //}

    //    ///// <summary>
    //    ///// Идентификатор региона профайн
    //    ///// </summary>
    //    //public int IdProfineRegion
    //    //{
    //    //    get
    //    //    {
    //    //        if(_idProfineRegion==0)
    //    //        {
    //    //            if (LegalEntities.Customers.IdprofineRegion != null)
    //    //                _idProfineRegion = (int) LegalEntities.Customers.IdprofineRegion;
    //    //        }
    //    //        return _idProfineRegion;
    //    //    }
    //    //    set { _idProfineRegion = value; }
    //    //}

    //    //public int IdProfineRegionLegalEntity
    //    //{
    //    //    get
    //    //    {
    //    //        if (LegalEntities != null)
    //    //            return LegalEntities.IdProfineRegion;
    //    //        return 0;
    //    //    }
    //    //}

        
    //    /// <summary>
    //    /// Год оборота
    //    /// </summary>
    //    public int Year
    //    {
    //        get { return Period.Year; }
    //    }

    //    /// <summary>
    //    /// Месяц оборота
    //    /// </summary>
    //    public int Month
    //    {
    //        get { return Period.Month; }
    //    }


    //    protected int _clientSequentalNumber;

    //    /// <summary>
    //    /// Номер клиента
    //    /// </summary>
    //    public int ClientSequentalNumber
    //    {
    //        get
    //        {
    //            if (IdLegalEntity != null)
    //            {
    //                //int id = (int) IdLegalEntity;
    //                //  return DB.GetLegalEntityById(id).Customers.SequentialNumber;
    //                if (_clientSequentalNumber == 0)
    //                    if (LegalEntities != null)
    //                        if (LegalEntities.Customers != null)
    //                            _clientSequentalNumber = LegalEntities.Customers.SequentialNumber;
    //                return _clientSequentalNumber;
    //            }

    //            return 0;
    //        }
    //    }

        
    //    /// <summary>
    //    /// Название юридического лица
    //    /// </summary>
    //    public string LegalEntityName
    //    {
    //        get { 
    //            if (LegalEntities != null) return LegalEntities.Name;
    //            return "";
    //        }
    //    }


    //    /// <summary>
    //    /// Артикул
    //    /// </summary>
    //    public string ArticleText
    //    {
    //        get
    //        {
    //            if(Products!=null)
    //            {
    //                return Products.ArticleLong;
    //            }
    //            return "";
    //        }
    //    }

    //    public ProductSystems ProductSystem
    //    {
    //        get
    //        {
    //            if (Products != null)
    //                return Products.ProductSystems;
    //            return null;
    //        }
    //    }

    //    public string ProductSystemName
    //    {
    //        get
    //        {
    //            if (ProductSystem != null)
    //                return ProductSystem.ProductSystemRu;
    //            return "";
    //        }
    //    }

    //    public string ProductMarkName
    //    {
    //        get
    //        {
    //            if (ProductMark != null)
    //            {
    //                return ProductMark.ProductMark;
    //            }
    //            return "";
    //        }
    //    }

    //    public ProductMarks ProductMark
    //    {
    //        get
    //        {
    //            if (ProductSystem!=null)
    //            {
    //                return ProductSystem.ProductMarks;
    //            }
    //            if (IdProductMark != null)
    //                return DB.GetProductMarkbyId((int) IdProductMark);
    //            return null;
    //        }
    //    }

    //    /// <summary>
    //    /// Название клиента
    //    /// </summary>
    //    public string CustomerName
    //    {
    //        get
    //        {
    //            if (LegalEntities != null)
    //                return LegalEntities.CustomerName;
    //            return "";
    //        }
    //    }


    //    /// <summary>
    //    /// Город юр. лица
    //    /// </summary>
    //    public string Cities
    //    {
    //        get
    //        {
    //            if (LegalEntities != null)
    //                return LegalEntities.CitiesStr;
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// Название дилера
    //    /// </summary>
    //    public string DealerLegalName
    //    {
    //        get
    //        {
    //            if (DealerLegalEntity != null) return DealerLegalEntity.Name;
    //            return "Производство";
    //        }
    //    }

        
    //    /// <summary>
    //    /// Название дилера
    //    /// </summary>
    //    public string DealerName
    //    {
    //        get
    //        {
    //            if(Dealer!=null)
    //            {
    //                return Dealer.Name;
    //            }
    //            return "Производство";
    //        }
    //    }

        
    //    ///// <summary>
    //    ///// Название региона профайн
    //    ///// </summary>
    //    //public string DealerProfineRegionName
    //    //{
    //    //    get
    //    //    {
    //    //        if (DealerLegalEntity != null)
    //    //            return DealerLegalEntity.ProfineRegionNameLocalized;
    //    //        return "";
    //    //    }
    //    //}

        
    //    /// <summary>
    //    /// Дилер
    //    /// </summary>
    //    public Customers Dealer
    //    {
    //        get
    //        {
    //            if (DealerLegalEntity != null)
    //                return DealerLegalEntity.Customers;
    //            return null;
    //        }
    //    }

    //    /// <summary>
    //    /// Город дилера
    //    /// </summary>
    //    public string DealerCity
    //    {
    //        get
    //        {
    //            if (DealerLegalEntity != null) return DealerLegalEntity.CitiesStr;
    //            return "";
    //        }
    //    }


    //    ///// <summary>
    //    ///// Город клиента
    //    ///// </summary>
    //    //public string CustomerCity
    //    //{
    //    //    get { return LegalEntities.PrimaryCity; }
    //    //}

        
    //    ///// <summary>
    //    ///// Область клиента
    //    ///// </summary>
    //    //public string CustomerRegion
    //    //{
    //    //    get {
    //    //        if (LegalEntities.PrimaryAddress != null)
    //    //            if (LegalEntities.PrimaryAddress.Settlements != null)
    //    //                return LegalEntities != null ? LegalEntities.PrimaryAddress.Settlements.RegionName : null;
    //    //        return LegalEntities.Customers.ProfineRegionNameLocalized;
    //    //        return "";
    //    //    }
    //    //}


    //    //public string CustomerProfineRegion
    //    //{
    //    //    get
    //    //    {
    //    //        if (LegalEntities.PrimaryAddress == null)
    //    //            return LegalEntities.Customers.ProfineRegionNameLocalized;
    //    //        return LegalEntities.PrimaryAddress.ProfineRegionNameLocalized;
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Классификация оборота по-русски
    //    /// </summary>
    //    private string _turnoverClassificationNameRu;

    //    /// <summary>
    //    /// Менеджер
    //    /// </summary>
    //    public string ManagerName
    //    {
           
    //          get
    //          {
    //              if (string.IsNullOrEmpty(_managerName))
    //              {
    //                  if (LegalEntities != null)
    //                      if (LegalEntities.Customers != null) _managerName = LegalEntities.Customers.Manager;
    //                      else _managerName = "-";
    //                  else _managerName = "-";
    //              }
    //              return _managerName;
    //          }
            
    //    }

    //    /// <summary>
    //    /// Классификация оборота по-русски
    //    /// </summary>
    //    public string TurnoverClassificationNameRu
    //    {
    //        get
    //        {
    //            if(string.IsNullOrEmpty(_turnoverClassificationNameRu))
    //            {
    //                var firstOrDefault = DB.TurnoverClassificationsActive.FirstOrDefault(p => p.IdTurnoverClassification == IdTurnoverClassification);
    //                if (
    //                    firstOrDefault != null)
    //                    _turnoverClassificationNameRu =
    //                        firstOrDefault.TurnoverClassificationRu;
    //            }
    //            return _turnoverClassificationNameRu;
    //        }
    //        set { _turnoverClassificationNameRu = value; }
    //    }

    //    //public string TurnoverClassificationNameLocalized
    //    //{
    //    //    get
    //    //    {
                
    //    //    }
    //    //}

    //    protected string _managerName;
    //}

    //#endregion

    //#region AgreementElements

    //public partial class AgreementElements
    //{

    //    /// <summary>
    //    /// Раширение для полного названия
    //    /// </summary>
    //    [Required(ErrorMessageResourceType = typeof (Resourses.Resourses), ErrorMessageResourceName = "AgreementElements_FullNameExt_Legal_entity_full_name_is_required")]
    //    public string FullNameExt
    //    {
    //        get { return FullName; }
    //        set { FullName = value; }
    //    }
        

    //    [Required(ErrorMessage="Необходимо выбрать юридическое лицо")]
    //    public int IdLegalEntityExt
    //    {
    //        get { return IdLegalEntity; }
    //        set { IdLegalEntity = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо выбрать форму собственности")]
    //    public int IdOwnershipPatternExt
    //    {
    //        get { return IdOwnershipPattern; }
    //        set { IdOwnershipPattern = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать почтовый индекс")]
    //    [RegularExpression("[0-9]{6}",ErrorMessage="Почтовый индекс должен содержать только шесть цифр")]
    //    public string PostIndexExt
    //    {
    //        get { return PostIndex; }
    //        set { PostIndex = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать фамилию, имя и отчество генерального директора в родительном падеже")]
    //    public string FIOGenDirInRPExt
    //    {
    //        get { return FIOGenDirInRP; }
    //        set { FIOGenDirInRP = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать фамилию, имя и отчество генерального директора")]
    //    public string FIOGenDirExt
    //    {
    //        get { return FIOGenDir; }
    //        set { FIOGenDir = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать почтовый адрес (без индекса)")]
    //    public string FullAddressExt
    //    {
    //        get { return FullAddress; }
    //        set { FullAddress = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать ИНН")]
    //    [RegularExpression("[0-9]*", ErrorMessage = "ИНН может содержать только цифры")]
    //    public string INNExt
    //    {
    //        get { return INN; }
    //        set { INN = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать КПП")]
    //    public string KPPExt
    //    {
    //        get { return KPP; }
    //        set { KPP = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать расчётный счёт")]
    //    public string RSExt
    //    {
    //        get { return RS; }
    //        set { RS = value; }
    //    }


    //    [Required(ErrorMessage = "Необходимо указать к/с")]
    //    public string KSExt
    //    {
    //        get { return KS; }
    //        set { KS = value; }
    //    }



    //    [Required(ErrorMessage = "Необходимо указать БИК")]
    //    public string BIKExt
    //    {
    //        get { return BIK; }
    //        set { BIK = value; }
    //    }



    //    [Required(ErrorMessageResourceType = typeof (Resourses.Resourses), ErrorMessageResourceName = "AgreementElements_BankExt_BankIsRequired")]
    //    public string BankExt
    //    {
    //        get { return Bank; }
    //        set { Bank = value; }
    //    }




    //    [Required(ErrorMessage = "Необходимо указать ОГРН")]
    //    public string OGRNExt
    //    {
    //        get { return OGRN; }
    //        set { OGRN = value; }
    //    }
        

    //    /// <summary>
    //    /// Название юридического лица
    //    /// </summary>
    //    public string LegalEntityName
    //    {
    //        get
    //        {
    //            if (LegalEntities == null)
    //                return "";
    //            return LegalEntities.Name;
    //        }
    //    }
        
    //    ///// <summary>
    //    ///// Локализованное сокращение формы собственности
    //    ///// </summary>
    //    //public string OwnershipPatternShortName
    //    //{
    //    //    get
    //    //    {
    //    //        if (OwnershipPatterns == null)
    //    //            return "";
    //    //        switch(DB.CurrentLanguage)
    //    //        {
    //    //            case CurrentLanguage.Russian:
    //    //                return OwnershipPatterns.NameShortRu;
    //    //                break;
    //    //            case CurrentLanguage.English:
    //    //                return OwnershipPatterns.NameShortEn;
    //    //                break;
    //    //            default:
    //    //                throw new ArgumentOutOfRangeException();
    //    //        }
    //    //    }
    //    //}

    //    public void Update(AgreementElements agreementElements, string userLogin)
    //    {
    //        if(agreementElements!=null)
    //        {
    //            var ag4update = DB.GetAgreementElementById(agreementElements.IdAgreementElement);
    //            if(ag4update!=null)
    //            {
    //                ag4update.IdUser = userLogin;
                    
    //                if (!string.IsNullOrEmpty(agreementElements.BIKExt)) 
    //                    ag4update.BIKExt = agreementElements.BIKExt;


    //                if (!string.IsNullOrEmpty(agreementElements.BankExt))
    //                    ag4update.BankExt = agreementElements.BankExt;


    //                if (!string.IsNullOrEmpty(agreementElements.FIOGenDirExt))
    //                    ag4update.FIOGenDirExt = agreementElements.FIOGenDirExt;

                    
    //                if (!string.IsNullOrEmpty(agreementElements.FIOGenDirInRPExt))
    //                    ag4update.FIOGenDirInRPExt = agreementElements.FIOGenDirInRPExt;


    //                if (!string.IsNullOrEmpty(agreementElements.FullAddressExt))
    //                    ag4update.FullAddressExt = agreementElements.FullAddressExt;


    //                if (!string.IsNullOrEmpty(agreementElements.FullNameExt))
    //                    ag4update.FullNameExt = agreementElements.FullNameExt;


    //                if (!string.IsNullOrEmpty(agreementElements.INNExt))
    //                    ag4update.INNExt = agreementElements.INNExt;


    //                if (agreementElements.IdLegalEntityExt!=0)
    //                    ag4update.IdLegalEntityExt = agreementElements.IdLegalEntityExt;


    //                if (agreementElements.IdOwnershipPatternExt!=0)
    //                    ag4update.IdOwnershipPatternExt = agreementElements.IdOwnershipPatternExt;


    //                if (!string.IsNullOrEmpty(agreementElements.KSExt))
    //                    ag4update.KSExt = agreementElements.KSExt;

    //                if (!string.IsNullOrEmpty(agreementElements.OGRNExt))
    //                    ag4update.OGRNExt = agreementElements.OGRNExt;


    //                if (!string.IsNullOrEmpty(agreementElements.PostIndexExt))
    //                    ag4update.PostIndexExt = agreementElements.PostIndexExt;


    //                if (!string.IsNullOrEmpty(agreementElements.RSExt))
    //                    ag4update.RSExt = agreementElements.RSExt;


    //            }
    //        }
    //    }
    //}

    //#endregion
    
    //#region Users

    /////// <summary>
    /////// Расширение класса Users
    /////// </summary>
    ////public partial class Users
    ////{

    ////    //public void SendMail()
    ////    //{
    ////    //    Utilites.Mail.sendMail()
    ////    //}

    ////    /// <summary>
    ////    /// Список ролей пользователя
    ////    /// </summary>
    ////    public List<Roles> Roles
    ////    {
    ////        get
    ////        {
    ////            List<Roles> result = new List<Roles>();
    ////            foreach (var item in UsersInRoles)
    ////            {
    ////                result.Add(item.Roles);
    ////            }
    ////            return result;
    ////        }
    ////    }

    ////    /// <summary>
    ////    /// Получить полное имя пользователя локализованное
    ////    /// </summary>
    ////    /// <returns>Локализованное полное имя пользователя</returns>
    ////    public string LocalizedFullName
    ////    {
    ////        //if (culture.Contains("ru"))
    ////        //{
    ////        //    return UserFullNameRu;
    ////        //}
    ////        //else
    ////        //{
    ////        //    return UserFullNameEn;
    ////        //}
    ////        get
    ////        {
    ////            switch (DB.CurrentLanguage)
    ////            {
    ////                case CurrentLanguage.Russian:
    ////                    return UserFullNameRu;
    ////                    break;
    ////                case CurrentLanguage.English:
    ////                    return UserFullNameEn;
    ////                    break;
    ////                default:
    ////                    throw new ArgumentOutOfRangeException();
    ////            }
    ////        }
    ////    }
    ////}
    
    //#endregion

    //    public partial class profineRegions
    //{
    //        public List<Settlements> Settlements
    //        {
    //            get 
    //            { 
    //                var result = new List<Settlements>();

    //                foreach(var region in Regions)
    //                {
    //                    foreach(var set in region.Settlements)
    //                    {
    //                        result.Add(set);
    //                    }
    //                }

    //                return result;
    //            }
    //        }
        //}

    #region Trainings - moved
    //#region Rubrics - MOVED

    ////public partial class Rubrics
    ////{
    ////    [Required(ErrorMessage = "Необходимо указать к/с")]
    ////    public string NameRu
    ////    {
    ////        get { return NameRu }
    ////        set { NameRu = value}
    ////    }
    ////}
    
    //#endregion

    //#region TrainingsPlaces - MOVED

    //public partial class TrainingsPlaces
    //{
    //    /// <summary>
    //    /// Город
    //    /// </summary>
    //    public string TrainingsCityName
    //    {
    //        get
    //        {
    //            return TrainingsCities != null ? TrainingsCities.TrainingsCityName : "";
    //        }
    //    }
    //}

    //#endregion

    //#region TrainingsCourses - MOVED

    ///// <summary>
    ///// Расширение класса каталога курсов
    ///// </summary>
    //public partial class TrainingsCourses
    //{
    //        /// <summary>
    //        /// Список тренеров через запятую
    //        /// </summary>
    //        public string Trainers
    //        {
    //            get
    //            {
    //                if (!string.IsNullOrEmpty(_trainers))
    //                    return _trainers;
    //                var result = new List<string>();
    //                foreach (var item in this.TrainingsCoursesTrainers)
    //                {
    //                    if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //                        result.Add(DB.GetTrainingsTrainerbyId(item.IdTrainingsTrainer).Name);
    //                }
    //                string resultString = "";
    //                foreach (var item in result)
    //                {
    //                    if (resultString.Length == 0)
    //                        resultString = resultString + item;
    //                    else
    //                        resultString = resultString + ";" + item;
    //                }
    //                return resultString;
    //            }

    //            set { _trainers = value; }
    //        }

    //        /// <summary>
    //        /// Список тренеров через запятую
    //        /// </summary>
    //        private string _trainers;

    //        /// <summary>
    //        /// Список типов через запятую
    //        /// </summary>
    //        public string CourseTypes
    //        {
    //            get
    //            {
    //                if (!string.IsNullOrEmpty(_courseTypes))
    //                    return _courseTypes;
    //                var result = new List<string>();
    //                foreach (var item in this.TrainingsCoursesAndTypes)
    //                {
    //                    if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //                        result.Add(DB.GetTrainingCoursesTypebyId(item.IdTraningCoursesType).NameRu);
    //                }
    //                string resultString = "";
    //                foreach (var item in result)
    //                {
    //                    if (resultString.Length == 0)
    //                        resultString = resultString + item;
    //                    else
    //                        resultString = resultString + ";" + item;
    //                }
    //                return resultString;
    //            }

    //            set { _courseTypes = value; }
    //        }

    //        /// <summary>
    //        /// Список типов через запятую
    //        /// </summary>
    //        private string _courseTypes;

    //        ///// <summary>
    //        ///// Локализованный список площадок через запятую
    //        ///// </summary>
    //        //public string Places
    //        //{
    //        //    get
    //        //    {
    //        //        if (!string.IsNullOrEmpty(_places))
    //        //            return _places;
    //        //        var result = new List<string>();
    //        //        foreach (var item in this.TrainingsCoursesPlaces)
    //        //        {
    //        //            if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //        //            {
    //        //                switch (DB.CurrentLanguage)
    //        //                {
    //        //                    case CurrentLanguage.Russian:
    //        //                        result.Add(DB.GetTrainingsPlacebyId(item.IdTrainingsPlace).NameRu);
    //        //                        break;
    //        //                    case CurrentLanguage.English:
    //        //                        result.Add(DB.GetTrainingsPlacebyId(item.IdTrainingsPlace).NameEn);
    //        //                        break;
    //        //                    default:
    //        //                        throw new ArgumentOutOfRangeException();
    //        //                }
    //        //            }
    //        //        }
    //        //        string resultString = "";
    //        //        foreach (var item in result)
    //        //        {
    //        //            if (resultString.Length == 0)
    //        //                resultString = resultString + item;
    //        //            else
    //        //                resultString = resultString + ";" + item;
    //        //        }
    //        //        return resultString;
    //        //    }
    //        //    set { _places = value; }
    //        //}
    //        ///// <summary>
    //        ///// Локализованный список площадок через запятую
    //        ///// </summary>
    //        //  private string _places;
    //        ///// <summary>
    //        ///// Локализованный список аудиторий через запятую
    //        ///// </summary>
    //        //public string Auditoriums
    //        //{
    //        //    get
    //        //    {
    //        //        if (!string.IsNullOrEmpty(_auditoriums))
    //        //            return _auditoriums;
    //        //        var result = new List<string>();
    //        //        foreach (var item in this.TrainingsCoursesAuditoriums)
    //        //        {
    //        //            if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //        //            {
    //        //                switch (DB.CurrentLanguage)
    //        //                {
    //        //                    case CurrentLanguage.Russian:
    //        //                        result.Add(DB.GetTrainingsAuditoriumbyId(item.IdTrainingsAuditorium).NameRu);
    //        //                        break;
    //        //                    case CurrentLanguage.English:
    //        //                        result.Add(DB.GetTrainingsAuditoriumbyId(item.IdTrainingsAuditorium).NameEn);
    //        //                        break;
    //        //                    default:
    //        //                        throw new ArgumentOutOfRangeException();
    //        //                }
    //        //            }
    //        //        }
    //        //        string resultString = "";
    //        //        foreach (var item in result)
    //        //        {
    //        //            if (resultString.Length == 0)
    //        //                resultString = resultString + item;
    //        //            else
    //        //                resultString = resultString + ";" + item;
    //        //        }
    //        //        return resultString;
    //        //    }
    //        //    set { _auditoriums = value; }
    //        //}
    //        ///// <summary>
    //        ///// Локализованный список аудиторий через запятую
    //        ///// </summary>
    //        //  private string _auditoriums;

    //        /// <summary>
    //        /// Имя рубрики
    //        /// </summary>
    //        public string RubricName
    //        {
    //            get
    //            {
    //                return Rubrics != null ? Rubrics.NameRu : "";
    //            }
    //        }

    //        /// <summary>
    //        /// Текстовое поле для ссылки
    //        /// </summary>
    //        public string LinkText
    //        {
    //            get
    //            {
    //                return "Подать заявку";
    //            }
    //        }

    //        /// <summary>
    //        /// Свойство для отображения списка тренеров в ячейке таблицы
    //        /// </summary>
    //        public string TrainersColumn
    //        {
    //            get
    //            {
    //                //if (!string.IsNullOrEmpty(_trainers))
    //                //    return _trainers;
    //                var result = new List<string>();
    //                foreach (var item in this.TrainingsCoursesTrainers)
    //                {
    //                    if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //                        result.Add(DB.GetTrainingsTrainerbyId(item.IdTrainingsTrainer).Name);
    //                }
    //                string resultString = "";
    //                foreach (var item in result)
    //                {
    //                    if (resultString.Length == 0)
    //                        resultString = resultString + item;
    //                    else
    //                        resultString = resultString + Environment.NewLine + item;
    //                }
    //                return resultString;
    //            }
    //        }

    //        ///// <summary>
    //        ///// Свойство для отображения списка аудиторий в ячейке таблицы
    //        ///// </summary>
    //        //public string AuditoriumsColumn
    //        //{
    //        //    get
    //        //    {
    //        //        //if (!string.IsNullOrEmpty(_auditoriums))
    //        //        //    return _auditoriums;
    //        //        var result = new List<string>();
    //        //        foreach (var item in this.TrainingsCoursesAuditoriums)
    //        //        {
    //        //            if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //        //            {
    //        //                switch (DB.CurrentLanguage)
    //        //                {
    //        //                    case CurrentLanguage.Russian:
    //        //                        result.Add(DB.GetTrainingsAuditoriumbyId(item.IdTrainingsAuditorium).NameRu);
    //        //                        break;
    //        //                    case CurrentLanguage.English:
    //        //                        result.Add(DB.GetTrainingsAuditoriumbyId(item.IdTrainingsAuditorium).NameEn);
    //        //                        break;
    //        //                    default:
    //        //                        throw new ArgumentOutOfRangeException();
    //        //                }
    //        //            }
    //        //        }
    //        //        string resultString = "";
    //        //        foreach (var item in result)
    //        //        {
    //        //            if (resultString.Length == 0)
    //        //                resultString = resultString + item;
    //        //            else
    //        //                resultString = resultString + Environment.NewLine + item;
    //        //        }
    //        //        return resultString;
    //        //    }
    //        //    set { _auditoriums = value; }
    //        //}
    //        ///// <summary>
    //        ///// Свойство для отображения списка площадок в ячейке таблицы
    //        ///// </summary>
    //        //public string PlacesColumn
    //        //{
    //        //    get
    //        //    {
    //        //        //if (!string.IsNullOrEmpty(_places))
    //        //        //    return _places;
    //        //        var result = new List<string>();
    //        //        foreach (var item in this.TrainingsCoursesPlaces)
    //        //        {
    //        //            if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //        //            {
    //        //                switch (DB.CurrentLanguage)
    //        //                {
    //        //                    case CurrentLanguage.Russian:
    //        //                        result.Add(DB.GetTrainingsPlacebyId(item.IdTrainingsPlace).NameRu);
    //        //                        break;
    //        //                    case CurrentLanguage.English:
    //        //                        result.Add(DB.GetTrainingsPlacebyId(item.IdTrainingsPlace).NameEn);
    //        //                        break;
    //        //                    default:
    //        //                        throw new ArgumentOutOfRangeException();
    //        //                }
    //        //            }
    //        //        }
    //        //        string resultString = "";
    //        //        foreach (var item in result)
    //        //        {
    //        //            if (resultString.Length == 0)
    //        //                resultString = resultString + item;
    //        //            else
    //        //                resultString = resultString + Environment.NewLine + item;
    //        //        }
    //        //        return resultString;
    //        //    }
    //        //    set { _places = value; }
    //        //}

    //        public string CourseTypesColumn
    //        {
    //            get
    //            {
    //                //if (!string.IsNullOrEmpty(_courseTypes))
    //                //    return _courseTypes;
    //                var result = new List<string>();
    //                foreach (var item in this.TrainingsCoursesAndTypes)
    //                {
    //                    if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //                        result.Add(DB.GetTrainingCoursesTypebyId(item.IdTraningCoursesType).NameRu);
    //                }
    //                string resultString = "";
    //                foreach (var item in result)
    //                {
    //                    if (resultString.Length == 0)
    //                        resultString = resultString + item;
    //                    else
    //                        resultString = resultString + Environment.NewLine + item;
    //                }
    //                return resultString;
    //            }

    //            set { _courseTypes = value; }
    //        }

    //        /// <summary>
    //        /// 
    //        /// </summary>
    //        public bool IsPlanned
    //        {
    //            get
    //            {
    //                return ValidateCourseType(1);
    //            }
    //        }

    //        /// <summary>
    //        /// 
    //        /// </summary>
    //        public bool IsRemote
    //        {
    //            get
    //            {
    //                return ValidateCourseType(2);
    //            }
    //        }

    //        /// <summary>
    //        /// 
    //        /// </summary>
    //        public bool IsWebinar
    //        {
    //            get
    //            {
    //                return ValidateCourseType(3);
    //            }
    //        }

    //        /// <summary>
    //        /// возвращает true если курс содержит заданный тип
    //        /// </summary>
    //        /// <param name="courseType"></param>
    //        /// <returns></returns>
    //        private bool ValidateCourseType(int courseType)
    //        {
    //            if (TrainingsCoursesAndTypes != null)
    //            {
    //                return TrainingsCoursesAndTypes.Where(item => item != null).Any(item => item.IdTraningCoursesType == courseType);
    //            }
    //            return false;
    //        }
    //}

    //#endregion

    //#region TrainingsSchedules - MOVED

    ///// <summary>
    ///// Расширения класса расписаний курсов
    ///// </summary>
    //public partial class TrainingsSchedules
    //{
    //        ///// <summary>
    //        ///// Локализованное название населённого пункта
    //        ///// </summary>
    //        //public string SettlementsLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        if (Settlements != null)
    //        //        {
    //        //            switch (DB.CurrentLanguage)
    //        //            {
    //        //                case CurrentLanguage.Russian:
    //        //                    return Settlements.NameRu;
    //        //                    break;
    //        //                case CurrentLanguage.English:
    //        //                    return Settlements.NameEn;
    //        //                    break;
    //        //                default:
    //        //                    throw new ArgumentOutOfRangeException();
    //        //            }
    //        //        }
    //        //        return "";
    //        //    }
    //        //}

    //        /// <summary>
    //        /// Текстовое поле для ссылки
    //        /// </summary>
    //        public string LinkText
    //        {
    //            get
    //            {
    //                return "Подать заявку";
    //            }
    //        }

    //        ///// <summary>
    //        ///// Получение локализованное региона профайн
    //        ///// </summary>
    //        //public string profineRegionsLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        if (profineRegions != null)
    //        //        {
    //        //            switch (DB.CurrentLanguage)
    //        //            {
    //        //                case CurrentLanguage.Russian:
    //        //                    return profineRegions.NameRu;
    //        //                    break;
    //        //                case CurrentLanguage.English:
    //        //                    return profineRegions.NameEn;
    //        //                    break;
    //        //                default:
    //        //                    throw new ArgumentOutOfRangeException();
    //        //            }
    //        //        }
    //        //        return "";
    //        //    }
    //        //}

    //        /// <summary>
    //        /// Название курса
    //        /// </summary>
    //        public string CourseName
    //        {
    //            get
    //            {
    //                return TrainingsCourses != null ? TrainingsCourses.Name : "";
    //            }
    //        }

    //        ///// <summary>
    //        ///// Название курса
    //        ///// </summary>
    //        //public string CourseTypeLocalazed
    //        //{
    //        //    get
    //        //    {
    //        //        if(this.TrainingsCourses != null)
    //        //            if(this.TrainingCoursesTypes != null)
    //        //            {
    //        //                switch (DB.CurrentLanguage)
    //        //                {
    //        //                    case CurrentLanguage.Russian:
    //        //                        if (this.TrainingCoursesTypes.NameRu!= null)
    //        //                        {
    //        //                            return this.TrainingCoursesTypes.NameRu;
    //        //                        }
    //        //                        break;
    //        //                    case CurrentLanguage.English:
    //        //                        if (this.TrainingCoursesTypes.NameEn != null)
    //        //                        {
    //        //                            return this.TrainingCoursesTypes.NameEn;
    //        //                        }
    //        //                        break;
    //        //                    default:
    //        //                        return "Не определен язык";
    //        //                }
    //        //            }
    //        //        return "Не определен";
    //        //    }
    //        //}

    //        /// <summary>
    //        /// Название Рубрики
    //        /// </summary>
    //        public string RubricName
    //        {
    //            get
    //            {
    //                if (this.TrainingsCourses != null)
    //                    if (this.TrainingsCourses.Rubrics != null)
    //                        if (this.TrainingsCourses.Rubrics.NameRu != null)
    //                            return this.TrainingsCourses.Rubrics.NameRu;
    //                return "";
    //            }
    //        }

    //        /// <summary>
    //        /// Название Города. Из площадки или напрямую.
    //        /// </summary>
    //        public string CityName
    //        {
    //            get
    //            {
    //                if(IdTrainingsCity!=null)
    //                {
    //                    var citiesCol = new CRM.Database.Model.TrainingsCitiesCollection();
    //                    var city = (CRM.Database.Model.TrainingsCities)citiesCol.GetItemById((int)IdTrainingsCity);
                    
    //                    //var city = DB.GetTrainingsCitybyId((int) IdTrainingsCity);)
    //                    if(city!=null)
    //                    {
    //                        return city.TrainingsCityName;
    //                    }
    //                }
    //                if (this.TrainingsPlaces != null)
    //                    if (this.TrainingsPlaces.TrainingsCityName != null)
    //                        return this.TrainingsPlaces.TrainingsCityName;
    //                return "";
    //            }
    //        }

    //        /// <summary>
    //        /// Заявленное кол-во участников
    //        /// </summary>
    //        public int ParticipantsCountRequested
    //        {
    //            get
    //            {
    //                var participants = DB.GetTrainingsParticipantsByScheduleId(this.IdTrainingsSchedule);
    //                return participants.Count;
    //            }
    //        }

    //        /// <summary>
    //        /// Одобренное кол-во участников
    //        /// </summary>
    //        public int ParticipantsCountApproved
    //        {
    //            get
    //            {
    //                var participants = DB.GetTrainingsParticipantsByScheduleId(this.IdTrainingsSchedule);
    //                int count = 0;
    //                foreach (var item in participants)
    //                {
    //                    if(    item.IdTrainingsParticipantsStatus == 3
    //                        || item.IdTrainingsParticipantsStatus == 4
    //                        || item.IdTrainingsParticipantsStatus == 7
    //                        || item.IdTrainingsParticipantsStatus == 9
    //                        ) count++;
    //                }
    //                return count;
    //            }
    //        }

    //        /// <summary>
    //        /// Фактическое кол-во участников
    //        /// </summary>
    //        public int ParticipantsCountActual
    //        {
    //            get
    //            {
    //                var participants = DB.GetTrainingsParticipantsByScheduleId(this.IdTrainingsSchedule);
    //                int count = 0;
    //                foreach (var item in participants)
    //                {
    //                    if (item.IdTrainingsParticipantsStatus == 3
    //                        || item.IdTrainingsParticipantsStatus == 4
    //                        || item.IdTrainingsParticipantsStatus == 7
    //                        ) count++;
    //                }
    //                return count;
    //            }
    //        }

    //        /// <summary>
    //        /// Стоимость одного участника
    //        /// </summary>
    //        public float ParticipantCoctExt
    //        {
    //            get
    //            {
    //                if (this.CourseCost > 0 && this.ParticipantsCountActual > 0)
    //                    return (float) this.CourseCost/this.ParticipantsCountActual;
    //                return 0;
    //            }
    //        }

    //        /// <summary>
    //        /// Допустимое кол-во участников
    //        /// </summary>
    //        public int ParticipantsCountAvailable
    //        {
    //            get
    //            {
    //                if (this.TrainingsCourses != null)
    //                    return this.TrainingsCourses.ParticipantCount;
    //                return 0;
    //            }
    //        }

    //        public int IdTrainingCoursesType1 { get; set; }

    //        /// <summary>
    //        /// Возвращает имя площaдки + (имя города) для плановых курсов. Для выездных - город.
    //        /// Для вебиноров - название площадки. Используется в отображении календаря
    //        /// </summary>
    //        public string LocationName
    //        {
    //            get
    //            {
    //                var result = "";
    //                //для плановых курсов
    //                if (IdTrainingCoursesType == 1)
    //                {
    //                    if (this.TrainingsPlaces != null)
    //                    {
    //                        result = this.TrainingsPlaces.NameRu;
    //                    }
    //                    result = result + "(г. " + CityName + ")";
    //                }
    //                //для выездных курсов
    //                if(IdTrainingCoursesType == 2)
    //                {
    //                    result = CityName;
    //                }
    //                //для вебинаров
    //                if (IdTrainingCoursesType == 3)
    //                {
    //                    if (this.TrainingsPlaces != null)
    //                    {
    //                        result = this.TrainingsPlaces.NameRu;
    //                    }
    //                }
    //                return result;
    //            }
    //        }
    //}


    //#endregion

    //#region TraningsRequestsExt - MOVED

    //    /// <summary>
    //    /// Расширенный класс для подачи заявки со списком участников
    //    /// </summary>
    //    public class TrainingsRequestsExt
    //    {
    //        public TrainingsRequests Request { get; set; }
    //        public List<TrainingsParticipants> ParticipantsList { get; set; }
    //        public TrainingsParticipants ParticipantItem { get; set; }
    //        public int Key { get; set; }
    //        public int IdLegalEntity { get; set; }
    //        public int IdContact { get; set; }
    //        public DateTime ScheduleDate { get; set; }
    //        public int IdTrainingsTrainer { get; set; }
    //        public TrainingsRequestsExt()
    //        {
    //            ParticipantsList = new List<TrainingsParticipants>();
    //            Request = new TrainingsRequests();
    //            ParticipantItem = new TrainingsParticipants();
    //        }
    //    }

    //#endregion

    //#region TrainingsRequests - MOVED

    ///// <summary>
    ///// Расширение класса заявки
    ///// </summary>
    //public partial class TrainingsRequests
    //{
    //        public string RequestType
    //        {
    //            get
    //            {
    //                if (this.IdTrainingsSchedule != null)
    //                    if (this.TrainingsSchedules != null)
    //                        if (this.TrainingsSchedules.TrainingsCourses != null)
    //                            if (this.TrainingsSchedules.TrainingCoursesTypes != null)
    //                                return this.TrainingsSchedules.TrainingCoursesTypes.NameRu;
    //                //if(this.IdTrainingsCourse > 0)
    //                //{
    //                //    var course = DB.GetTrainingsCoursebyId(IdTrainingsCourse);
    //                //    if(course != null)
    //                //        return course.TrainingCoursesTypes.NameRu;
    //                //}
    //                return "Выездной";
    //            }
    //        }

    //        public string CompanyExt
    //        {
    //            get
    //            {
    //                if (IdLegalEntity != null)
    //                {
    //                    var entity = DB.GetLegalEntityById((int) IdLegalEntity);
    //                    if (entity != null)
    //                        return entity.Name;
    //                }
    //                return "";
    //            }
    //        }

    //        public string ContactNameExt
    //        {
    //            get
    //            {
    //                if (IdContact != null)
    //                {
    //                    var contact = DB.GetContactById((int) IdContact);
    //                    if (contact != null)
    //                        return contact.Name;
    //                }
    //                return "";
    //            }
    //        }

    //        public string ContactPhoneExt
    //        {
    //            get
    //            {
    //                if (IdContact != null)
    //                {
    //                    var contact = DB.GetContactById((int) IdContact);
    //                    if (contact != null)
    //                        return contact.Phone;
    //                }
    //                return "";
    //            }
    //        }

    //        public string ContactEmailExt
    //        {
    //            get
    //            {
    //                if (IdContact != null)
    //                {
    //                    var contact = DB.GetContactById((int)IdContact);
    //                    if (contact != null)
    //                        return contact.Email;
    //                }
    //                return "";
    //            }
    //        }

    //        public string CourseNameExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    if (this.TrainingsSchedules.TrainingsCourses != null)
    //                        if (this.TrainingsSchedules.TrainingsCourses.Name != null)
    //                            return this.TrainingsSchedules.TrainingsCourses.Name;
    //                var course = DB.GetTrainingsCoursebyId(IdTrainingsCourse);
    //                if (course != null)
    //                    if (course.Name != null)
    //                        return course.Name;
    //                return "";
    //            }
    //        }

    //        public string CourseDateExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    return this.TrainingsSchedules.PlannedDate.ToShortDateString();
    //                return "";
    //            }
    //        }

    //        public string TrainerNameExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    if (this.TrainingsSchedules.TrainingsTrainers != null)
    //                        if (this.TrainingsSchedules.TrainingsTrainers.Name != null)
    //                            return this.TrainingsSchedules.TrainingsTrainers.Name;
    //                return "";
    //            }
    //        }

    //        public string TraningCenterExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    if (this.TrainingsSchedules.TrainingsTrainers != null)
    //                        if (this.TrainingsSchedules.TrainingsTrainers.TrainingsCenters != null)
    //                            if (this.TrainingsSchedules.TrainingsTrainers.TrainingsCenters.NameRu != null)
    //                                return this.TrainingsSchedules.TrainingsTrainers.TrainingsCenters.NameRu;
    //                return "";
    //            }
    //        }

    //        public string VisitCoefficientExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    return this.TrainingsSchedules.ParticipantsCountApproved.ToString() + "/" +
    //                           this.TrainingsSchedules.ParticipantsCountActual.ToString();
    //                return "";
    //            }
    //        }

    //        public double DurationExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    if (this.TrainingsSchedules.TrainingsCourses != null)
    //                        return this.TrainingsSchedules.TrainingsCourses.Duration;
    //                var course = DB.GetTrainingsCoursebyId(this.IdTrainingsCourse);
    //                return course != null ? course.Duration : 0;
    //            }
    //        }

    //        public string CourseCostExt
    //        {
    //            get
    //            {
    //                if (this.TrainingsSchedules != null)
    //                    return this.TrainingsSchedules.CourseCost.ToString() + " руб.";
    //                return "";
    //            }
    //        }

    //        public string StatusExt
    //        {
    //            get
    //            {
    //                if (this.TrainingRequestsStatuses!=null)
    //                    return this.TrainingRequestsStatuses.NameRu;
    //                return "";
    //            }
    //        }

    //        /// <summary>
    //        /// Строка с участниками. Каждый на новой строке.
    //        /// </summary>
    //        public string ParticipantsList
    //        {
    //            get
    //            {
    //                var result = "";
    //                foreach (var participant in this.TrainingsParticipants)
    //                {
    //                    if (result.Length == 0)
    //                        result = result + participant.ParticipantName;
    //                    else
    //                        result = result + Environment.NewLine + participant.ParticipantName;
    //                }
    //                return result;
    //            }
    //        }

    //        /// <summary>
    //        /// Список участников, которым отказано в обучении
    //        /// </summary>
    //        public string ParticipantsRefusedList
    //        {
    //            get
    //            {
    //                var result = "";
    //                foreach (var participant in this.TrainingsParticipants)
    //                {
    //                    if (result.Length == 0)
    //                    {
    //                        if (participant.IdTrainingsParticipantsStatus == 5)
    //                            result = result + participant.ParticipantName;
    //                    }
    //                    else
    //                        {
    //                            if (participant.IdTrainingsParticipantsStatus == 5)
    //                                result = result + Environment.NewLine + participant.ParticipantName;
    //                        }
    //                }
    //                return result;
    //            }
    //        }

    //        /// <summary>
    //        /// отправляет письмо контактному лицу о получении новой заявки
    //        /// </summary>
    //        /// <returns>null при успешной выполнении</returns>
    //        public string SendNewMail()
    //        {
    //            if (this.IdContact != null)
    //            {
    //                return Utilites.Mail.SendMail(
    //                                                this.ContactEmailExt, //to
    //                                                DB.GetDefaultMailFromStringTrainings(), //from
    //                                                "Заявка зарегистрирована под номером " + this.IdTrainingsRequest, //subject
    //                                                "Заявка зарегистрирована под номером " + this.IdTrainingsRequest, //body
    //                                                Configurations.TrainingsDocsTargetPath + "\\new" + this.IdTrainingsRequest + ".doc", //attachment
    //                                                DB.GetMailServerIp(), //ip
    //                                                DB.GetMailServerPort() //port
    //                                             );
    //            }
    //            return "Request contacts is null or empty";
    //        }

    //        /// <summary>
    //        /// отправляет приглашение контактному лицу
    //        /// </summary>
    //        /// <returns></returns>
    //        public string SendAcceptanceMail()
    //        {
    //            if (this.IdContact != null)
    //            {
    //                return Utilites.Mail.SendMail(
    //                                                this.ContactEmailExt, //to
    //                                                DB.GetDefaultMailFromStringTrainings(), //from
    //                                                "Подтверждение участия в учебном курсе", //subject
    //                                                "Подтверждение участия в учебном курсе", //body
    //                                                Configurations.TrainingsDocsTargetPath + "\\acceptance" + this.IdTrainingsRequest + ".doc", //attachment
    //                                                DB.GetMailServerIp(), //ip
    //                                                DB.GetMailServerPort() //port
    //                                             );
    //            }
    //            return "Request contacts is null or empty";
    //        }

    //        /// <summary>
    //        /// Отправляет отказ контактному лицу
    //        /// </summary>
    //        /// <returns></returns>
    //        public string SendRefuseMail()
    //        {
    //            if (this.IdContact != null)
    //            {
    //                return Utilites.Mail.SendMail(
    //                                                this.ContactEmailExt, //to
    //                                                DB.GetDefaultMailFromStringTrainings(), //from
    //                                                "Отказ в учебном курсе", //subject
    //                                                "Отказ в учебном курсе", //body
    //                                                Configurations.TrainingsDocsTargetPath + "\\refuse" + this.IdTrainingsRequest + ".doc", //attachment
    //                                                DB.GetMailServerIp(), //ip
    //                                                DB.GetMailServerPort() //port
    //                                             );
    //            }
    //            return "Request contacts is null or empty";
    //        }

    //        /// <summary>
    //        /// Отправляет письмо с запросом на подтверждение менеджеру по сбыту
    //        /// </summary>
    //        /// <returns></returns>
    //        public string SendConfirmationMail()
    //        {
    //            if (this.IdContact != null)
    //            {
    //                return Utilites.Mail.SendMail(
    //                                                this.ContactEmailExt, //to
    //                                                DB.GetDefaultMailFromStringTrainings(), //from
    //                                                "Запрос на подтверждение", //subject
    //                                                "Запрос на подтверждение", //body
    //                                                Configurations.TrainingsDocsTargetPath + "\\confirmation" + this.IdTrainingsRequest + ".doc", //attachment
    //                                                DB.GetMailServerIp(), //ip
    //                                                DB.GetMailServerPort() //port
    //                                             );
    //            }
    //            return "Request contacts is null or empty";
    //        }
    //}


    //#endregion

    //#region TrainingsScheduler - MOVED

    //    public class SchedulerDataObject
    //    {
    //        public IEnumerable Appointments { get; set; }
    //        public IEnumerable Resources { get; set; }
    //    }

    //    public class SchedulerResources
    //    {
    //        public int UniqueID { get; set; }
    //        public int ResourceID { get; set; }
    //        public string ResourceName { get; set; }
    //        public int Color { get; set; }
    //        public string Image { get; set; }
    //        public string CustomField1 { get; set; }
    //    }

    //    public class SchedulerAppointments
    //    {
    //        public int UniqueID { get; set; }
    //        public int Type { get; set; }
    //        public DateTime StartDate { get; set; }
    //        public DateTime EndDate { get; set; }
    //        public bool AllDay { get; set; }
    //        public string Subject { get; set; }
    //        public string Location { get; set; }
    //        public string Description { get; set; }
    //        public int Status { get; set; }
    //        public int Label { get; set; }
    //        public int ResourceID { get; set; }
    //        public string ReminderInfo { get; set; }
    //        public string RecurrenceInfo { get; set; }
    //        public string CustomField1 { get; set; }
    //    }

    //#endregion

    //обучение конец
    #endregion

    #region Technics - moved
    #region CustomersProductSystems - moved

    ///// <summary>
    ///// Расширение класса привязок клиентов к системам
    ///// </summary>
    //public partial class CustomersProductSystems
    //{
    //        public void Create()
    //        {
    //            if(this.IdCustomer > 0 && this.IdProductSystem > 0)
    //            {
    //                this.IdCustomersProductSystem = -1;
    //                DB.Entities.CustomersProductSystems.Add(this);
    //                DB.Save();
    //            }
    //        }

    //        public void Delete()
    //        {
    //            var item = DB.GetCustomersProductSystembyId(this.IdCustomersProductSystem);
    //            if (item == null) return;
    //            DB.Entities.CustomersProductSystems.Remove(item);
    //            DB.Save();
    //        }

    //        //public string ProductSystemNameLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        switch (DB.CurrentLanguage)
    //        //        {
    //        //            case CurrentLanguage.Russian:
    //        //                {
    //        //                    if (this.ProductSystems.ProductSystemRu != null)
    //        //                        return this.ProductSystems.ProductSystemRu;
    //        //                    return "";
    //        //                }
    //        //            case CurrentLanguage.English:
    //        //                {
    //        //                    if (this.ProductSystems.ProductSystemEn != null)
    //        //                        return this.ProductSystems.ProductSystemEn;
    //        //                    return "";
    //        //                }
    //        //            default:
    //        //                return "";
    //        //        }
    //        //    }
    //        //}

    //        public string ProductMarkExt
    //        {
    //            get
    //            {
    //                if(this.ProductSystems.ProductMarks!=null)
    //                {
    //                    return this.ProductSystems.ProductMarks.ProductMark;
    //                }
    //                return "";
    //            }
    //        }
    //}
    
    #endregion
    #region TechnicRequestsExt - moved

        //public class TechnicRequestsExt
        //{
        //        public int IdLegalEntity { get; set; }
        //        public int IdContact { get; set; }
        //        public int IdAddress { get; set; }
        //        public string VisitsTypes { get; set; }
        //        //public int IdTechnic { get; set; }

        //        public TechnicRequests Request { get; set; }
        
        //        public List<ProductSystems> ProdustSystemsList { get; set; }
        //        public List<TechnicRequestAttachments> AttachmentsList { get; set; }
        //        public List<Equipments> EquipmentsList { get; set; }
        //        public List<TechnicRequestsEquipments> RequestsEquipmentsList { get; set; }

        //        //конструктор
        //        public TechnicRequestsExt()
        //        {
        //            Request= new TechnicRequests();
        //            ProdustSystemsList = new List<ProductSystems>();
        //            AttachmentsList = new List<TechnicRequestAttachments>();
        //            EquipmentsList = new List<Equipments>();
        //            RequestsEquipmentsList = new List<TechnicRequestsEquipments>();
        //        }
        //        public int Key { get; set; }

        //        /// <summary>
        //        /// заполнение расширенной заявки из обычной для использование в формах редактирования
        //        /// </summary>
        //        /// <param name="technicRequest"></param>
        //        public void FillFromRequest(TechnicRequests technicRequest)
        //        {
        //            //заполнение основных свойств
        //            this.IdAddress = technicRequest.IdAddress;
        //            this.IdContact = technicRequest.IdContact;
        //            this.IdLegalEntity = technicRequest.IdLegalEntity;
        //            this.VisitsTypes = technicRequest.VisitsTypesString;

        //            //заполнение свойств заявки
        //            this.Request.IdAddress = technicRequest.IdAddress;
        //            this.Request.IdContact = technicRequest.IdContact;
        //            this.Request.IdCustomer = technicRequest.IdCustomer;
        //            this.Request.IdLegalEntity = technicRequest.IdLegalEntity;
        //            this.Request.IdTechnicRequest = technicRequest.IdTechnicRequest;
        //            this.Request.IdTechnicRequestStatus = technicRequest.IdTechnicRequestStatus;
        //            this.Request.IdTechnic = technicRequest.IdTechnic;
        //            if(this.Request.IdTechnic < 1)
        //            {
        //                var col = new UsersCollection();
        //                var usersList = col.GetUsersByIdRoleType(3);
        //                if (usersList.Count > 0)
        //                    this.Request.IdTechnic = usersList.First().IdUser;
        //            }
        //            this.Request.Duration = 1;

        //            this.Request.PlannedDate = technicRequest.PlannedDate;
        //            this.Request.BeginDate = technicRequest.BeginDate;
        //            this.Request.EndDate = technicRequest.EndDate;
        //            this.Request.CreateDate = technicRequest.CreateDate;
        //            this.Request.Comments = technicRequest.Comments;

            

        //            //заполнение листа систем
        //            ProdustSystemsList = DB.GetProductSystemsListByRequestId(technicRequest.IdTechnicRequest);

        //            //заполнение списка оборудования
        //            EquipmentsList = DB.GetEquipmentsListByRequestId(technicRequest.IdTechnicRequest);

        //            //заполнение списка бпривязок оборудования
        //            RequestsEquipmentsList = DB.GetBindingsEquipmentsListByRequestId(technicRequest.IdTechnicRequest);
        //        }

        //        /// <summary>
        //        /// содержит ли список привязок ИД с обоорудованием?
        //        /// </summary>
        //        /// <param name="binding"></param>
        //        /// <returns></returns>
        //        public bool Contains(TechnicRequestsEquipments binding)
        //        {
        //            foreach (var item in RequestsEquipmentsList)
        //            {
        //                if (item.IdEquipment == binding.IdEquipment)
        //                    return true;
        //            }
        //            return false;
        //        }

        //        /// <summary>
        //        /// удаляет элемент списка, в котором совпадает ИД оборудования
        //        /// </summary>
        //        /// <param name="item"></param>
        //        public void DeleteEquipment(TechnicRequestsEquipments item)
        //        {
        //            if(item == null) return;
        //            if(this.RequestsEquipmentsList.Count == 0) return;
        //            foreach (var bindingItem in RequestsEquipmentsList)
        //            {
        //                if (bindingItem.IdEquipment == item.IdEquipment)
        //                {
        //                    RequestsEquipmentsList.Remove(bindingItem);
        //                    break;
        //                }
        //            }
        //        }

        //        /// <summary>
        //        /// заполнение измененной результирующей заяки
        //        /// </summary>
        //        /// <param name="newRequest"></param>
        //        public void FillForResult(TechnicRequestsExt newRequest)
        //        {
        //            //заполнение из свойств расширенной заявки 
        //            this.Request.IdAddress = newRequest.IdAddress;
        //            this.Request.IdContact = newRequest.IdContact;
        //            this.Request.IdLegalEntity = newRequest.IdLegalEntity;
            
        //            //строка с типами выездов
        //            this.VisitsTypes = newRequest.VisitsTypes;
        //            if (string.IsNullOrEmpty(VisitsTypes))
        //                this.VisitsTypes = DB.VisitsTypes.First().DescriptionRu.ToString();

        //            //заполнение свойств из обычной заявки))
        //            this.Request.IdCustomer = newRequest.Request.IdCustomer;
        //            this.Request.IdTechnic = newRequest.Request.IdTechnic;
        //            this.Request.IdTechnicRequestStatus = newRequest.Request.IdTechnicRequestStatus;

        //            this.Request.BeginDate = newRequest.Request.BeginDate;
        //            this.Request.EndDate = newRequest.Request.EndDate;
        //            this.Request.CreateDate = newRequest.Request.CreateDate;
        //            this.Request.PlannedDate = newRequest.Request.PlannedDate;
        //            this.Request.Comments = newRequest.Request.Comments;
        //            this.Request.Duration = newRequest.Request.Duration;

        //            //определение статуса "новая" -> "зарегистрирована"
        //            if (this.Request.IdTechnic > 0 && this.Request.IdTechnicRequestStatus < 2)
        //                this.Request.IdTechnicRequestStatus = 2;
        //            if (this.Request.IdTechnic == 0 && this.Request.IdTechnicRequestStatus < 2) 
        //                this.Request.IdTechnicRequestStatus = 1;
        //        }
        //}

    #endregion
    #region ProductSystems - moved
    /////// <summary>
    /////// Расширение класса систем продуктов
    /////// </summary>
    ////public partial class ProductSystems
    ////{
    ////    public string ProductSystemNameLocalized
    ////    {
    ////        get
    ////        {
    ////            switch (DB.CurrentLanguage)
    ////            {
    ////                case CurrentLanguage.Russian:
    ////                    {
    ////                        if (this.ProductSystemRu != null)
    ////                            return this.ProductSystemRu;
    ////                        return "";
    ////                    }
    ////                case CurrentLanguage.English:
    ////                    {
    ////                        if (this.ProductSystemEn != null)
    ////                            return this.ProductSystemEn;
    ////                        return "";
    ////                    }
    ////                default:
    ////                    return "";
    ////            }
    ////        }
    ////    }
    //    public string ProductMarkExt
    //    {
    //        get
    //        {
    //            if (this.ProductMarks != null)
    //            {
    //                return this.ProductMarks.ProductMark;
    //            }
    //            return "";
    //        }
    //    }
    //}
    #endregion
    #region Equipments - moved
    ///// <summary>
    ///// локализованное название типа оборудования
    ///// </summary>
    //public partial class Equipments
    //{
    //        ///// <summary>
    //        ///// локализованное имя типа оборудования
    //        ///// </summary>
    //        ////public string EquipmentTypeNameLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        if(this.EquipmentTypes!=null)
    //        //        {
    //        //            switch (DB.CurrentLanguage)
    //        //            {
    //        //                case CurrentLanguage.Russian:
    //        //                    {
    //        //                        if (this.EquipmentTypes.EquipmentTypeRu != null)
    //        //                            return this.EquipmentTypes.EquipmentTypeRu;
    //        //                        return "";
    //        //                    }
    //        //                case CurrentLanguage.English:
    //        //                    {
    //        //                        if (this.EquipmentTypes.EquipmentTypeEn != null)
    //        //                            return this.EquipmentTypes.EquipmentTypeRu;
    //        //                        return "";
    //        //                    }
    //        //                default:
    //        //                    return "";
    //        //            }
    //        //        }
    //        //        return "";
    //        //    }
    //        //}

    //        ///// <summary>
    //        ///// название вендора
    //        ///// </summary>
    //        //public string VendorNameExt
    //        //{
    //        //    get
    //        //    {
    //        //        if(this.Vendors!=null)
    //        //        {
    //        //            if (this.Vendors.VendorName != null)
    //        //                return this.Vendors.VendorName;
    //        //        }
    //        //        return "";
    //        //    }
    //        //}

    //        //public string VendorTypeNameLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        DB.GetVendorsTypeByVendorId()
    //        //        return "";
    //        //    }
    //        //}
    //}
    #endregion
    #region TechnicRequestsEquipments - moved
    //public partial class TechnicRequestsEquipments
    //{
    //        ///// <summary>
    //        ///// локализованное имя типа оборудования
    //        ///// </summary>
    //        //public string EquipmentTypeNameLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //        //        return equipment == null ? "" : equipment.EquipmentTypeNameLocalized;
    //        //    }
    //        //}

    //        /// <summary>
    //        /// Обозначение по русски
    //        /// </summary>
    //        public string EquipmentTypeNameRu
    //        {
    //            get
    //            {
    //                var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //                if (equipment == null) return "";
    //                if (equipment.EquipmentTypes == null) return "";
    //                if (equipment.EquipmentTypes.EquipmentTypeRu == null) return "";
    //                return equipment.EquipmentTypes.EquipmentTypeRu;
    //            }
    //        }

    //        /// <summary>
    //        /// Обозначение по английски
    //        /// </summary>
    //        public string EquipmentTypeNameEn
    //        {
    //            get
    //            {
    //                var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //                if (equipment == null) return "";
    //                if (equipment.EquipmentTypes == null) return "";
    //                if (equipment.EquipmentTypes.EquipmentTypeEn == null) return "";
    //                return equipment.EquipmentTypes.EquipmentTypeEn;
    //            }
    //        }

    //        ///// <summary>
    //        ///// название вендора
    //        ///// </summary>
    //        //public string VendorNameExt
    //        //{
    //        //    get
    //        //    {
    //        //        var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //        //        return equipment == null ? "" : equipment.VendorNameExt;
    //        //    }
    //        //}

    //        /// <summary>
    //        /// Модель
    //        /// </summary>
    //        public string ModelExt
    //        {
    //            get
    //            {
    //                var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //                if (equipment != null)
    //                {
    //                    if (equipment.Model != null)
    //                        return equipment.Model;
    //                }
    //                return "";
    //            }
    //        }
    //}
    #endregion
    #region CustomersEquipments - moved
    ///// <summary>
    ///// Расширение класса привязок 
    ///// </summary>
    //public partial class CustomersEquipments
    //{
    //        ///// <summary>
    //        ///// локализованное имя типа оборудования
    //        ///// </summary>
    //        //public string EquipmentTypeNameLocalized
    //        //{
    //        //    get
    //        //    {
    //        //        var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //        //        return equipment == null ? "" : equipment.EquipmentTypeNameLocalized;
    //        //    }
    //        //}

    //        ///// <summary>
    //        ///// название вендора
    //        ///// </summary>
    //        //public string VendorNameExt
    //        //{
    //        //    get
    //        //    {
    //        //        var equipment = DB.GetEquipmentbyId(this.IdEquipment);
    //        //        return equipment == null ? "" : equipment.VendorNameExt;
    //        //    }
    //        //}
    //}
    #endregion
    #region TechnicRequestAttachments - moved
    ///// <summary>
    ///// Ссылка на аттачмент
    ///// </summary>
    //public partial class TechnicRequestAttachments
    //{
    //    public string Link
    //    {
    //        get
    //        {
    //            return "<a href="+ this.Path + " target='_blank'>" +this.Name + "</a>";
    //        }
    //    }
    //}
    #endregion
    #region TechnicRequestStatuses  - moved
    //public partial class TechnicRequestStatuses
    //{
    //    public string LocalizedName
    //    {
    //        get
    //        {
    //            switch (DB.CurrentLanguage)
    //            {
    //                case CurrentLanguage.Russian:
    //                    {
    //                        if (this.NameRu != null)
    //                            return this.NameRu;
    //                        return "";
    //                    }
    //                case CurrentLanguage.English:
    //                    {
    //                        if (this.NameEn != null)
    //                            return this.NameEn;
    //                        return "";
    //                    }
    //                default:
    //                    return "";
    //            }
    //        }
    //    }
    //}
    #endregion
    #region TechnicRequests - moved
    ///// <summary>
    ///// расгирение класса заявок
    ///// </summary>
    //public partial class TechnicRequests
    //{
    //    public string VisitsTypesColumn
    //    {
    //        get
    //        {
    //            var result = "";
    //            if (this.TechnicRequestsVisitsTypes == null) return result;
    //            foreach (var item in this.TechnicRequestsVisitsTypes)
    //            {
    //                var visitType = DB.GetVisitsTypebyId(item.IdVisitsType);
    //                if (visitType != null)
    //                {
    //                    if (string.IsNullOrEmpty(result))
    //                    {
    //                        result += visitType.VisitsType.ToString();
    //                    }
    //                    else
    //                    {
    //                        result += Environment.NewLine + visitType.VisitsType;
    //                    }
    //                }
    //            }
    //            return result;
    //            //var result = new List<string>();
    //            //foreach (var item in this.TrainingsCoursesTrainers)
    //            //{
    //            //    if (this.IdTrainingsCourse == item.IdTrainingsCourse)
    //            //        result.Add(DB.GetTrainingsTrainerbyId(item.IdTrainingsTrainer).Name);
    //            //}
    //            //string resultString = "";
    //            //foreach (var item in result)
    //            //{
    //            //    if (resultString.Length == 0)
    //            //        resultString = resultString + item;
    //            //    else
    //            //        resultString = resultString + Environment.NewLine + item;
    //            //}
    //            //return resultString;
    //        }
    //    }

    //    public string VisitsTypesString
    //    {
    //        get
    //        {
    //            var result = "";
    //            if (this.TechnicRequestsVisitsTypes == null) return result;
    //            foreach (var item in this.TechnicRequestsVisitsTypes)
    //            {
    //                var visitType = DB.GetVisitsTypebyId(item.IdVisitsType);
    //                if (visitType != null)
    //                {
    //                    if (string.IsNullOrEmpty(result))
    //                    {
    //                        result += visitType.VisitsType.ToString();
    //                    }
    //                    else
    //                    {
    //                        result += ";" + visitType.VisitsType;
    //                    }
    //                }
    //            }
    //            return result;
    //        }
    //    }

    //    public void Delete()
    //    {
    //        if (this.IdTechnicRequest < 1) return;

    //        //удаление аттачментов
    //        if (this.TechnicRequestAttachments != null)
    //        {
    //            var attachmentsList = this.TechnicRequestAttachments.ToList();
    //            foreach (var attachment in attachmentsList)
    //            {
    //                attachment.Delete();
    //            }
    //        }

    //        //удаление привязок к системам
    //        if (this.TechnicRequestsProductSystems != null)
    //        {
    //            var bindingSystemsList = this.TechnicRequestsProductSystems.ToList();
    //            foreach (var item in bindingSystemsList)
    //            {
    //                item.Delete();
    //            }
    //        }

    //        //удаление привязок типов выездов к заявке
    //        if (this.TechnicRequestsVisitsTypes != null)
    //        {
    //            var visitsList = this.TechnicRequestsVisitsTypes.ToList();
    //            foreach (var item in visitsList)
    //            {
    //                item.Delete();
    //            }
    //        }

    //        //удаление привязок оборудования к заявке
    //        if (this.TechnicRequestsEquipments != null)
    //        {
    //            var equipmentsList = this.TechnicRequestsEquipments.ToList();
    //            foreach (var item in equipmentsList)
    //            {
    //                DB.TechnicRequestsEquipmentsDelete(item);
    //            }
    //        }


    //        //удаление самой заявки
    //        var requestDel = DB.GetTechnicRequestById(this.IdTechnicRequest);
    //        if (requestDel != null)
    //        {
    //            DB.Entities.TechnicRequests.Remove(requestDel);
    //            DB.Save();
    //        }
    //    }

    //    public string ManagerName
    //    {
    //        get
    //        {
    //            if (this.Customers != null)
    //                if (this.Customers.Manager != null)
    //                    return this.Customers.Manager;
    //            return "";
    //        }
    //    }

    //    public string LegalEntityName
    //    {
    //        get
    //        {
    //            if (this.LegalEntities != null)
    //                if (this.LegalEntities.Name != null)
    //                    return this.LegalEntities.Name;
    //            return "";
    //        }
    //    }

    //    public string TechnicName
    //    {
    //        get
    //        {
    //            if (this.IdTechnic > 0)
    //            {
    //                UsersCollection col = new UsersCollection();
    //                var user = col.GetUserbyId(IdTechnic);
    //                if (user != null)
    //                {
    //                    return user.LocalizedFullName;
    //                }
    //            }
    //            return "";
    //        }
    //    }

    //    //public string City
    //    //{
    //    //    get
    //    //    {
    //    //        if(this.Addresses!=null)
    //    //        {
    //    //            return this.Addresses.SettlementsLocalized;
    //    //        }
    //    //        return "";
    //    //    }
    //    //}

    //    /// <summary>
    //    /// Добавить существующий файл к списку вложений
    //    /// </summary>
    //    /// <param name="attachmentName">Отображаемое имя вложения</param>
    //    /// <param name="fileName">Реальное имя файла</param>
    //    public void AddAttachment(string attachmentName, string fileName)
    //    {
    //        if (string.IsNullOrEmpty(attachmentName) || string.IsNullOrEmpty(fileName)) return;
    //        var attachment = new TechnicRequestAttachments { Name = attachmentName, Path = fileName };
    //        var requestNew = DB.GetTechnicRequestById(this.IdTechnicRequest);
    //        if (requestNew != null)
    //        {
    //            requestNew.TechnicRequestAttachments.Add(attachment);
    //            DB.Save();
    //        }
    //        return;
    //    }

    //    /// <summary>
    //    /// Обновить существующий файл в списке вложений по названию вложения
    //    /// </summary>
    //    /// <param name="attachmentName">Отображаемое имя вложения</param>
    //    /// <param name="fileName">Реальное имя файла</param>
    //    public void UpdateAttachment(string attachmentName, string fileName)
    //    {
    //        if (string.IsNullOrEmpty(attachmentName) || string.IsNullOrEmpty(fileName)) return;
    //        foreach (var item in this.TechnicRequestAttachments)
    //        {
    //            if (item.Name == attachmentName)
    //            {
    //                var attachment = DB.GetTechnicRequestAttachmentById(item.IdTechnicRequestAttachment);
    //                if (attachment != null)
    //                {
    //                    attachment.Name = attachmentName;
    //                    attachment.Path = fileName;
    //                    DB.Save();
    //                    return;
    //                }
    //            }
    //        }
    //        AddAttachment(attachmentName, fileName);
    //        return;
    //    }
    //}
    #endregion
    #region TechnicRequestsProductSystems - moved
    ///// <summary>
    ///// Расширение класса привязок систем к заявкам техников
    ///// </summary>
    //public partial class TechnicRequestsProductSystems
    //{
    //    //public string ProductSystemNameLocalizedExt
    //    //{
    //    //    get
    //    //    {
    //    //        var productSystem = DB.GetProductSystembyId(this.IdProductSystem);
    //    //        if (productSystem == null) return " ";
    //    //        switch (DB.CurrentLanguage)
    //    //        {
    //    //            case CurrentLanguage.Russian:
    //    //                {
    //    //                    if (productSystem.ProductSystemRu != null)
    //    //                        return productSystem.ProductSystemRu;
    //    //                    return " ";
    //    //                }
    //    //            case CurrentLanguage.English:
    //    //                {
    //    //                    if (productSystem.ProductSystemEn != null)
    //    //                        return productSystem.ProductSystemEn;
    //    //                    return " ";
    //    //                }
    //    //            default:
    //    //                return " ";
    //    //        }
    //    //    }
    //    //}

    //    public string ProductMarkExt
    //    {
    //        get
    //        {
    //            if (this.ProductSystems.ProductMarks != null)
    //            {
    //                return this.ProductSystems.ProductMarks.ProductMark;
    //            }
    //            return "";
    //        }
    //    }

    //    /// <summary>
    //    /// сохранение привязки заявки к системе в базе
    //    /// </summary>
    //    public void Create()
    //    {
    //        if (this.IdTechnicRequest > 0 && this.IdProductSystem > 0)
    //        {
    //            this.IdTechnicRequestsProductSystem = -1;
    //            DB.Entities.TechnicRequestsProductSystems.Add(this);
    //            DB.Save();
    //        }
    //    }

    //    /// <summary>
    //    /// Удаление привязки заявки к системе из базы
    //    /// </summary>
    //    public void Delete()
    //    {
    //        var item = DB.GetTechnicRequestsProductSystemById(this.IdTechnicRequestsProductSystem);
    //        if (item == null) return;
    //        DB.Entities.TechnicRequestsProductSystems.Remove(item);
    //        DB.Save();
    //    }
    //}
    #endregion
    #region TechnicRequestsVisitsTypes - moved
    ///// <summary>
    ///// расширение класса привязок заявок техников к типом выездов
    ///// </summary>
    //public partial class TechnicRequestsVisitsTypes
    //{
    //    /// <summary>
    //    /// Сохранение приязки заявки к типу выезда в БД
    //    /// </summary>
    //    public void Create()
    //    {
    //        if (this.IdTechnicRequest > 0 && this.IdVisitsType > 0)
    //        {
    //            this.IdTechnicRequestsVisitsType = -1;
    //            DB.Entities.TechnicRequestsVisitsTypes.Add(this);
    //            DB.Save();
    //        }
    //    }

    //    /// <summary>
    //    /// удаление привязки типов выездов к заявке
    //    /// </summary>
    //    public void Delete()
    //    {
    //        if (this.IdTechnicRequestsVisitsType < 1) return;
    //        var item = DB.GetTechnicRequestsVisitsTypebyId(this.IdTechnicRequestsVisitsType);
    //        if (item != null)
    //        {
    //            DB.Entities.TechnicRequestsVisitsTypes.Remove(item);
    //            DB.Save();
    //        }
    //    }
    //}
    #endregion
    #region TechnicRequestAttachments - moved
    ///// <summary>
    ///// расширение класса аттачментов
    ///// </summary>
    //public partial class TechnicRequestAttachments
    //{
    //    /// <summary>
    //    /// удаление аттачмента
    //    /// </summary>
    //    public void Delete()
    //    {
    //        if (this.IdTechnicRequestAttachment < 1) return;
    //        var item = DB.GetTechnicRequestAttachmentById(this.IdTechnicRequestAttachment);
    //        if (item == null) return;
    //        DB.Entities.TechnicRequestAttachments.Remove(item);
    //        DB.Save();
    //    }
    //}
    #endregion
    #endregion

    #region Configuration - MOVED
    //public partial class Configurations
    //{
    //        ////public static string TrainingsDocsPath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        var result = DB.GetConfigurationParam("TrainingsDocumentsPath");
    //        ////        if (!string.IsNullOrEmpty(result))
    //        ////            return result;
    //        ////        return "";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsDocsTemplatesPath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        if(!string.IsNullOrEmpty(TrainingsDocsPath))
    //        ////        {
    //        ////            return TrainingsDocsPath + "\\Templates";
    //        ////        }
    //        ////        return "";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsDocsTempPath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        if (!string.IsNullOrEmpty(TrainingsDocsPath))
    //        ////        {
    //        ////            return TrainingsDocsPath + "\\Temp";
    //        ////        }
    //        ////        return "";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsDocsTargetPath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        if (!string.IsNullOrEmpty(TrainingsDocsPath))
    //        ////        {
    //        ////            return TrainingsDocsPath + "\\Target";
    //        ////        }
    //        ////        return "";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsAcceptenceMoscowFilePath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        return TrainingsDocsTemplatesPath + "\\acceptenceMoscow.doc";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsNewRequestFilePath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        return TrainingsDocsTemplatesPath + "\\newRequest.doc";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsRefuseFilePath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        return TrainingsDocsTemplatesPath + "\\refuse.doc";
    //        ////    }
    //        ////}

    //        ////public static string TrainingsConfirmationFilePath
    //        ////{
    //        ////    get
    //        ////    {
    //        ////        return TrainingsDocsTemplatesPath + "\\managerNotification.doc ";
    //        ////    }

    //        ////}

    //        ////public static string GetTrainingsAcceptanceFilePathByRequestId(int idRequest)
    //        ////{
    //        ////    var request = DB.GetTrainingsRequestesById(idRequest);
    //        ////    if(request!=null)
    //        ////    {
    //        ////        if (request.TrainingsSchedules != null)
    //        ////            if (request.TrainingsSchedules.TrainingsPlaces != null)
    //        ////                if (request.TrainingsSchedules.TrainingsPlaces.AcceptanceFileName != null)
    //        ////                    return Configurations.TrainingsDocsTemplatesPath + "\\" +
    //        ////                           request.TrainingsSchedules.TrainingsPlaces.AcceptanceFileName;
    //        ////    }
    //        ////    return Configurations.TrainingsDocsTemplatesPath + "\\acceptance.doc";
    //        ////}

    //        //public static string TechnicDocsPath
    //        //{
    //        //    get
    //        //    {
    //        //        var result = DB.GetConfigurationParam("TechnicDocumentsPath");
    //        //        if (!string.IsNullOrEmpty(result))
    //        //            return result;
    //        //        return "";
    //        //    }
    //        //}
        
    //        //public static string TechnicAttachmentsPath
    //        //{
    //        //    get
    //        //    {
    //        //        return TechnicDocsPath + "\\Attachments";
    //        //    }
    //        //}

    //        //public static string TechnicDocsTemplatesPath
    //        //{
    //        //    get
    //        //    {
    //        //        return TechnicDocsPath + "\\Templates";
    //        //    }
    //        //}

    //        //public static string TechnicDocsReportsPath
    //        //{
    //        //    get
    //        //    {
    //        //        return TechnicDocsPath + "\\Reports";
    //        //    }
    //        //}
    //}
    #endregion

}